Notice anything funny about the "random" choices? import sympy import time import random
f = [i for i in sympy.primerange(1000,10000)] for i in xrange(10): f1 = random.choice(f) print f1, f2 = random.choice(f) print f2, C = f1*f2 ff = None ff = sympy.factorint(C) print ff ## 7307 7243 [(7243, 1), (7307, 1)] ## 4091 6829 [(4091, 1), (6829, 1)] ## 8563 2677 [(2677, 1), (8563, 1)] ## 4091 6829 [(4091, 1), (6829, 1)] ## 8563 2677 [(2677, 1), (8563, 1)] ## 4091 6829 [(4091, 1), (6829, 1)] ## 8563 2677 [(2677, 1), (8563, 1)] ## 4091 6829 [(4091, 1), (6829, 1)] ## 8563 2677 [(2677, 1), (8563, 1)] ## 4091 6829 [(4091, 1), (6829, 1)] As in, "they're NOT random". The random number generator is broken by the sympy.factorint() function. Random.choice() works ok if the factorint() function commented out. ## 6089 1811 None ## 6449 1759 None ## 9923 4639 None ## 4013 4889 None ## 4349 2029 None ## 6703 8677 None ## 1879 1867 None ## 5153 5279 None ## 2011 4937 None ## 7253 5507 None This makes sympy worse than worthless, as it fucks up other modules. -- http://mail.python.org/mailman/listinfo/python-list