def gcd( a, b ):
    "greatest common divisor"
    while True:
        c = a % b
        if c < 1e-5:
            return b
        a, b = b, c

def gcdset( a_set ):
    "use the pairwise gcd to find gcd of a set"
    x = a_set.pop()
    total = x
    for u in a_set:
        x = gcd( u, x )
        # the following step is optional,
        # some sort of stabilization just for improved accuracy
        total = total + u
        x = total / round(total/x)

    return x

# the list where we want to find the gcd
inputlist = [2239.864226650253, 1250.4096410911607, 1590.1948696485413,
    810.0479848807954, 2177.343744595695, 54.3656365691809, 2033.2748076873656,
    2074.049035114251, 108.7312731383618, 2188.216871909531]

# we turn it into a set to get rid of duplicates
aset = set(inputlist)
print(gcdset( aset ))