"Raymond Hettinger" <[EMAIL PROTECTED]> writes: > Since people are posting their solutions now (originally only hints > were provided for the homework problem), here's mine: > > 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. -- http://mail.python.org/mailman/listinfo/python-list