使用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

相关文章
|
4月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
97 2
|
5月前
|
数据可视化 数据挖掘 数据处理
Python实现数字按三角形排列
Python实现数字按三角形排列
40 4
|
5月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
59 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
5月前
|
算法 数据挖掘 Python
Python 实现数字按照三角形排列详解
Python 实现数字按照三角形排列详解
189 0
|
7月前
|
算法 Python
python函数递归和生成器
python函数递归和生成器
|
7月前
|
算法 数据挖掘 Python
|
6月前
|
数据可视化 数据挖掘 数据处理
Python实现数字按三角形排列
Python实现数字按三角形排列
54 0
|
8月前
|
缓存 Python
Python中递归错误
【7月更文挑战第17天】
100 8
|
7月前
|
数据采集 Java Python
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
|
8月前
|
算法 Python
python中算法递归错误(Recursion Errors)
【7月更文挑战第18天】
131 1