n=eval(input("Enter n: ")) # keep sub 20-ish max
for i in range(0,(2**n)):# loop from 0 to (2^n)-1
cursub="Current Subset Contains Elements: "
for j in range(0,n):
if((1<<j) & i >0): #Checking if jth bit in i is set
cursub+=(str(j+1)+" ")
print (cursub)
print ("All ", (2**n)," Subsets printed")
Enter n: Current Subset Contains Elements:
Current Subset Contains Elements: 1
Current Subset Contains Elements: 2
Current Subset Contains Elements: 1 2
Current Subset Contains Elements: 3
Current Subset Contains Elements: 1 3
Current Subset Contains Elements: 2 3
Current Subset Contains Elements: 1 2 3
All 8 Subsets printed