Powersets of a list?
Emile van Sebille
emile at fenx.com
Fri May 25 10:56:52 EDT 2001
This seems to do it:
def toggle(pattern):
if pattern[-1] == 0:
pattern[-1] = 1
else:
pattern[-1] = 0
pattern[:-1] = toggle(pattern[:-1])
return pattern
def genNibbles(qty):
rslt = [[0]*qty]
for i in xrange(2**qty - 1):
rslt.append(toggle(rslt[-1][:]))
return rslt
def powerset(set):
incl = genNibbles(len(set))
sq = range(len(set))
rslt = []
for i in incl:
sset = []
for j in sq:
if i[j] == 1:
sset.append(set[j])
rslt.append(sset)
return rslt
print powerset([1,2,3])
HTH,
--
Emile van Sebille
emile at fenx.com
---------
"Roy Katz" <katz at Glue.umd.edu> wrote in message
news:Pine.GSO.4.21.0105250956170.9036-100000 at y.glue.umd.edu...
> Hello,
>
> I was wondering if, given a list [1,2,3], one can generate its power set?
>
> thanks,
> Roey Katz
>
>
More information about the Python-list
mailing list