I need access to 2*n random choices for two types subject to a constraint that in the end I have drawn n of each. I first tried::
def random_types(n,typelist=[True,False]): types = typelist*n random.shuffle(types) for next_type in types: yield next_type This works but has some obvious costs. To avoid those I considered this instead:: def random_types(n,typelist=[True,False]): type0, type1 = typelist ct0, ct1 = 0,0 while ct0+ct1<2*n: if random.random() < ((n-ct0)/(2*n-ct0-ct1)): next_type = type0 ct0 += 1 else: next_type = type1 ct1 += 1 yield next_type Does this seem a good way to go? Comments welcome. Thank you, Alan Isaac -- http://mail.python.org/mailman/listinfo/python-list