Given a set
{0, 1, 2, 3}
How can I produce the subsets:
[set(), {0}, {1}, {2}, {3}, {0, 1}, {0, 2}, {0, 3}, {1, 2}
def powerset(lst): return reduce(lambda result, x: result + [subset + [x] for subset in result], lst, [[]])