#递归果然还是不太会用!!
def permutation(li):
len_list = len(li)
if len_list == 1:
return li
result = []
for i in range(len_list):
res_list = li[:i] + li[i + 1:]
s = li[i]
per_result = permutation(res_list)
if len(per_result) == 1:
result.append([s] + per_result)
else:
result += [[s] + j for j in per_result]
return result
n = int(input('请输入n:'))
a = []
while n > 0:
a.append(n)
n -= 1
per = permutation(a[::-1])
print(len(per))
s = ''
for i in per:
n = [str(x) for x in i]
s = ' '.join(n)
print(s)
'''
#python自带的模块
import itertools
def permutation(li):
return list(itertools.permutations(li))
n = int(input('请输入n:'))
a = []
while n > 0:
a.append(n)
n -= 1
per = permutation(a[::-1])
print(per)
'''
'''
#另一种做法
def perm(seq, begin, end):
#进行排列的函数
global num
if begin == end:
print(" ".join(seq))
num += 1
else:
for index in range(begin, end):
seq[index], seq[begin] = seq[begin], seq[index]
perm(seq, begin + 1, end)
seq[index], seq[begin] = seq[begin], seq[index]
num = 0
seq = ['1', '2', '3']
perm(seq, 0, len(seq))
print(num)
#作者:未琢 https://www.bilibili.com/read/cv2077119 出处:bilibili
'''