def subsets(n):
    t=[[0],[1]]
    for i in range(n-2):
        first = range(len(t))
        second= range(len(t))
        for j in range(len(t)):
            first[j]="[0,"+str(t[j])[1:]
            second[j]="[1,"+str(t[j])[1:]
        t=first+second
    p=range(len(t))
    for j in range(len(t)):
        p[j]=eval("[1,"+str(t[j])[1:])
    return p
            
def asubsets(n):
    t=[[0],[1]]
    for i in range(n-1):
        first = range(len(t))
        second= range(len(t))
        for j in range(len(t)):
            first[j]="[0,"+str(t[j])[1:]
            second[j]="[1,"+str(t[j])[1:]
        t=first+second
    p= range(len(t))
    for j in range(len(t)):
        p[j]=eval(str(t[j]))
    return p
