N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.
첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.
import sys
sys.stdin = open("input.text", "rt")
n = int(input())
ch = [0] * (n+1)
res = []
def dfs(L):
if L == n+1:
print(*res)
else:
for i in range(1,n+1):
if ch[i] == 0:
ch[i] = 1
res.append(i)
dfs(L+1)
ch[i] = 0
res.pop()
dfs(1)
순열 코드.
중복 체크만 하고 전부 반복.