Python代码解答

输入整数n(3<=n<=7),编写程序输出1,2,....,n整数的全排列,按字典序输出。
输入样例:
输入:3
输出:123 132 213 231 312 321

import itertools
n=int(input())
s=[]
for i in range(1,n+1):
    s.append(i)

num=list(itertools.permutations(s,n)) #要list,不然它只是一个对象
for c in num:
    for d in c:
        print(d,end= '')
    print()

输出不符,请求各位的帮忙。

import random
n = int(input())
t = list()
t1 = set()
for i in range(1,n+1):
    t.append(str(i))
while True:
    sum = 1
    for i in range(1, n + 1):
        sum *= i
    if len(t1) >= sum:
        break
    random.shuffle(t)
    t1.add("".join(t))
s = sorted(t1)
for i in s:
    print(i,end=" ")

记得点个采纳,谢谢 

#!/usr/bin/python
# -*- coding: utf-8 -*-

import random

#求阶乘
def jc(n):
    sum = 1
    for i in range(1,n+1):
        sum *= i
    return sum

n = int(input())
t = list()
t1 = set()
for i in range(1,n+1):
    t.append(str(i))

while True:
    if len(t1) >= jc(n):
        break
    #首先要知道n个数字有n!种排列,我们用这个判断数据的数量
    random.shuffle(t) #随机排序
    t1.add("".join(t))
    #这里使用set集合是避免重复的数据
s = sorted(t1)
for i in s:
    print(i)

 

#!/usr/bin/python
# -*- coding: utf-8 -*-

import random

#求阶乘
def jc(n):
    sum = 1
    for i in range(1,n+1):
        sum *= i
    return sum

n = int(input())
t = list()
t1 = set()
for i in range(1,n+1):
    t.append(str(i))

while True:
    if len(t1) >= jc(n):
        break
    #首先要知道n个数字有n!种排列,我们用这个判断数据的数量
    random.shuffle(t) #随机排序
    t1.add("".join(t))
    #这里使用set集合是避免重复的数据
s = sorted(t1)
for i in s:
    print(i)

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m