使用Python递归实现全排列

简介: 使用Python递归实现全排列

整体思路

1:确定两个列表

2:一个列表是用来存放需要全排列的数

3:另一个列表是用来存放已经排列好的数

4:将上面两个列表不断进行递归

5:最后结果列表里添加的是最后排列好的列表

代码

import math
import copy
# 定义全排列的函数
def permutation(need_perm, Already_perm):
    global temp_list
    if len(need_perm) == 0:
        temp_list.append(Already_perm)
        return
    for i, element in enumerate(need_perm):
        permutation(need_perm[:i]+need_perm[i+1:], Already_perm+[element])
    return temp_list
if __name__ == "__main__":
    user_input = eval('['+input("请输入需要全排列的数字:")+']')
    temp_list = []
    permutation(user_input, [])
    print(temp_list)

结果

image.png

相关文章
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
262 2
|
数据可视化 数据挖掘 数据处理
Python实现数字按三角形排列
Python实现数字按三角形排列
102 4
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
161 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
算法 Python
python函数递归和生成器
python函数递归和生成器
|
算法 数据挖掘 Python
深入理解Python中的递归文件夹读取操作
【8月更文挑战第27天】
309 1
|
算法 数据挖掘 Python
Python 实现数字按照三角形排列详解
Python 实现数字按照三角形排列详解
468 0
|
数据可视化 数据挖掘 数据处理
Python实现数字按三角形排列
Python实现数字按三角形排列
204 0
|
缓存 Python
Python中递归错误
【7月更文挑战第17天】
369 8
|
算法 Python
python中算法递归错误(Recursion Errors)
【7月更文挑战第18天】
617 1
|
存储 缓存 算法
python中递归深度超限(RecursionError)
【7月更文挑战第15天】
751 1

推荐镜像

更多