输入整数n(3<=n<=7),编写程序输出1,2,...,n
整数的全排列,按字典序输出。
输入格式:
一行输入正整数n。
输出格式:
按字典序输出1到n的全排列。每种排列占一行,数字间无空格。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
123
132
213
231
312
321
代码如下:
from math import *
from random import *
n = eval(input())
# s1中写入1到n
s1 = [i + 1 for i in range(n)]
# 创建列表
b = []
# set()让b中无重复数据 factorial()计算n的阶乘
while len(set(b)) < factorial(n):
# 使s1中的数据随机排序
shuffle(s1)
# 将s1按照顺序排成的字符串写成字符串即dis
dis = "".join(str(i) for i in s1)
# 将dis写入到b中
b.append(dis)
# 使b中数据不重复
b = set(b)
# 将b中数据按升序排序
result = sorted(b)
# 输出
for i in result:
print(i)