all = []
def gen(A, idx = 0, cur = []):
if idx >= len(A):
if len(cur): all.append(cur)
return
gen(A, idx + 1, list(cur))
incl = list(cur)
incl.append(A[idx])
gen(A, idx + 1, incl)
def solve(A):
global all
all = []
gen(A)
return all
print(solve([1, 4, 6]))
YWxsID0gW10KCmRlZiBnZW4oQSwgaWR4ID0gMCwgY3VyID0gW10pOgoJaWYgaWR4ID49IGxlbihBKToKCQlpZiBsZW4oY3VyKTogYWxsLmFwcGVuZChjdXIpCgkJcmV0dXJuCgkKCWdlbihBLCBpZHggKyAxLCBsaXN0KGN1cikpCglpbmNsID0gbGlzdChjdXIpCglpbmNsLmFwcGVuZChBW2lkeF0pCglnZW4oQSwgaWR4ICsgMSwgaW5jbCkKCmRlZiBzb2x2ZShBKToKCWdsb2JhbCBhbGwKCWFsbCA9IFtdCglnZW4oQSkKCXJldHVybiBhbGwKCQpwcmludChzb2x2ZShbMSwgNCwgNl0pKQ==
[[6], [4], [4, 6], [1], [1, 6], [1, 4], [1, 4, 6]]