1.3.1 全排列问题
Description
输出自然数 11 到 nn 所有不重复的排列,即 nn 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。
Input
第一行为一个整数nn
Output
由11至nn组成的所有不重复的数字序列,每行一个序列。
每个数字之间由空格隔开
Sample Input 1
3
Sample Output 1
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
Hint
1 \le n \le 91≤n≤9
Reference Answer
def full_permutation(arr):
res = []
def recall(arr, temp):
if len(arr) == 0:
res.append(temp)
return
for i in range(len(arr)):
recall(arr[: i] + arr[i + 1 :], temp + [arr[i]])
recall(arr, [])
return res
arr = []
N = int(input())
for i in range(N):
arr[i] = i + 1
print(full_permutation(arr))