import sys

def permute_printR(L, k):
    if k == len(L):
        print(L)
        return
    i = k
    while i < len(L):
        L[k], L[i] = L[i], L[k]
        permute_printR(L, k + 1)
        L[k], L[i] = L[i], L[k]
        i += 1

def permute_print(L):
    N = len(L)
    permute_printR(L, 0)
        
def enumerate(N):
    L = []
    for i in range(N):
        L += [i]
    permute_print(L)

def main():
    N = int(sys.argv[1])
    enumerate(N)

main()

# $ python permutations2.py 3
# [0, 1, 2]
# [0, 2, 1]
# [1, 0, 2]
# [1, 2, 0]
# [2, 1, 0]
# [2, 0, 1]
# $ 
