[Guido, retroactively channeling Tim] > A few transformations down the road, here's a 4-line powerset() generator: > > def powerset(base): > pairs = [(2**i, x) for i, x in enumerate(base)] > for n in xrange(2**len(pairs)): > yield [x for m, x in pairs if m&n] Mine used one less local variable, so is more cache-friendly <wink>.