Powersets of a list?

David C. Ullrich ullrich at math.okstate.edu
Fri May 25 11:30:46 EDT 2001

On Fri, 25 May 2001 09:57:41 -0400, Roy Katz <katz at Glue.umd.edu>

>I was wondering if, given a list  [1,2,3], one can generate its power set?

Well, a list is not a set - if a list is a "set with repetitions" then
the following returns the "set-with-repetitions power set":

def AddTo(list, elt):
	return list + [elt]

def PowerSet(list):
  if list:
    ans = PowerSet(list[:-1])
    return ans + map(AddTo, ans, [list[-1]]*len(ans))
    return [[]]

Probably the slowest possible solution...

>Roey Katz

David C. Ullrich
"Sometimes you can have access violations all the
time and the program still works." (Michael Caracena,
comp.lang.pascal.delphi.misc 5/1/01)

More information about the Python-list mailing list