from itertools import chain, combinations
def powerset(s):
"powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
for result in powerset(range(3)):
print(result)
ZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNoYWluLCBjb21iaW5hdGlvbnMKCmRlZiBwb3dlcnNldChzKToKICAgICJwb3dlcnNldChbMSwyLDNdKSAtLT4gKCkgKDEsKSAoMiwpICgzLCkgKDEsMikgKDEsMykgKDIsMykgKDEsMiwzKSIKICAgIHJldHVybiBjaGFpbi5mcm9tX2l0ZXJhYmxlKGNvbWJpbmF0aW9ucyhzLCByKSBmb3IgciBpbiByYW5nZShsZW4ocykrMSkpCgpmb3IgcmVzdWx0IGluIHBvd2Vyc2V0KHJhbmdlKDMpKToKICAgIHByaW50KHJlc3VsdCk=
()
(0,)
(1,)
(2,)
(0, 1)
(0, 2)
(1, 2)
(0, 1, 2)