【Python】输出全排列


代码思路仅供参考,欢迎大家批评指正!


目录

  • 7-8 输出全排列
    • 输入格式
    • 输出格式
    • 输入样例
    • 输出样例
    • 思路
    • 代码


7-8 输出全排列

输入整数n(3<=n<=7),编写程序输出1,2,...,n整数的全排列,按字典序输出。

输入格式

一行输入正整数n。

输出格式

按字典序输出1到n的全排列。每种排列占一行,数字间无空格。

输入样例

3

输出样例

123
132
213
231
312
321

思路

利用递归函数实现

代码

# By jurio.
def full_list(l, num=None):
    lst = []
    num_copy = num
    for s in l:
        num = num_copy
        if num is None:
            num = s
        else:
            num += s
        l_temp = l.copy()
        l_temp.remove(s)
        if len(l_temp) > 1:
            lst += full_list(l_temp, num)
        else:
            num += l_temp[0]
            lst.append(num)
    return lst

n = int(input())

lst = [str(i+1) for i in range(n)]
full_l = full_list(lst)
for l in full_l:
    print(l)

你可能感兴趣的:(Python_PTA,python)