Tim Chase: > I suspect that the zfill responses don't have the property of equally > distributed "randomness", as the first digit may more likely be a zero.
This code I have shown before: str(randrange(100000)).zfill(5) If the numbers are equally distributed in [0, 99999], then the leading zeros have the correct distribution. A little test program for you: from string import digits from random import choice, randrange from collections import defaultdict def main(): N = 1000000 freqs1 = defaultdict(int) for i in xrange(N): n = "".join(choice(digits) for d in xrange(5)) freqs1[n[0]] += 1 print [freqs1[str(i)] for i in xrange(10)] freqs2 = defaultdict(int) for i in xrange(N): n = str(randrange(100000)).zfill(5) freqs2[n[0]] += 1 print [freqs2[str(i)] for i in xrange(10)] import psyco; psyco.full() main() The output: [100153, 99561, 99683, 100297, 99938, 100162, 99738, 100379, 100398, 99691] [99734, 100153, 100091, 100683, 99580, 99676, 99671, 100131, 100102, 100179] Of course with a bit of math you can also demonstrate it :-) Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list