import sys

def valido(L):
    N = len(L)
    for i in range(N):
        for j in range(i + 1, N):
            if L[i] == L[j]:
                return False
    return True

def enumerate_print(L, k):
    if k == len(L):
        if valido(L):
            print(L)
        return
    for i in range(len(L)):
        L[k] = i
        enumerate_print(L, k + 1)

def enumerate(N):
    L = N * [0]
    enumerate_print(L, 0)

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

main()

# $ python enumerate_diff.py 3
# [0, 1, 2]
# [0, 2, 1]
# [1, 0, 2]
# [1, 2, 0]
# [2, 0, 1]
# [2, 1, 0]
# $ python enumerate_diff.py 4 | head
# [0, 1, 2, 3]
# [0, 1, 3, 2]
# [0, 2, 1, 3]
# [0, 2, 3, 1]
# [0, 3, 1, 2]
# [0, 3, 2, 1]
# [1, 0, 2, 3]
# [1, 0, 3, 2]
# [1, 2, 0, 3]
# [1, 2, 3, 0]
# $ python enumerate_diff.py 4 | wc -l
#       24
# $ 
