Paul Rubin wrote: >> def genpool(n, m): >> if n == 1: >> yield [m] >> else: >> for i in xrange(1, m): >> for rest in genpool(n-1, m-i): >> yield rest + [i] >> >> import random >> print random.choice(list(genpool(n=4, m=20))) > > This generates a lot of the partitions more than once, with > possibly unequal probability.
Well, I just noticed that with my memoization function it produces too little :-( But I hope you notice that this function doesn't create only partitions but all possible outcomes? A. -- http://mail.python.org/mailman/listinfo/python-list