from itertools import *
def powerset(iterable):
"powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
result = powerset({1, 2, 3})
print(list(result))
ZnJvbSBpdGVydG9vbHMgaW1wb3J0ICoKCmRlZiBwb3dlcnNldChpdGVyYWJsZSk6CiAgICAicG93ZXJzZXQoWzEsMiwzXSkgLS0+ICgpICgxLCkgKDIsKSAoMywpICgxLDIpICgxLDMpICgyLDMpICgxLDIsMykiCiAgICBzID0gbGlzdChpdGVyYWJsZSkKICAgIHJldHVybiBjaGFpbi5mcm9tX2l0ZXJhYmxlKGNvbWJpbmF0aW9ucyhzLCByKSBmb3IgciBpbiByYW5nZShsZW4ocykrMSkpCgpyZXN1bHQgPSBwb3dlcnNldCh7MSwgMiwgM30pCnByaW50KGxpc3QocmVzdWx0KSk=
[(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)]