Python循环实现n的全排列功能
作者:wuhen_n 时间:2022-08-15 21:04:08
描述:
输入一个大于0的整数n,输出1到n的全排列:
例如:
n=3,输出[[3, 2, 1], [2, 3, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [1, 2, 3]]
n=4,输出[[4, 3, 2, 1], [3, 4, 2, 1], [3, 2, 4, 1], [3, 2, 1, 4], [4, 2, 3, 1], [2, 4, 3, 1], [2, 3, 4, 1], [2, 3, 1, 4], [4, 2, 1, 3],
[2, 4, 1, 3], [2, 1, 4, 3], [2, 1, 3, 4], [4, 3, 1, 2], [3, 4, 1, 2], [3, 1, 4, 2], [3, 1, 2, 4], [4, 1, 3, 2], [1, 4, 3, 2],
[1, 3, 4, 2], [1, 3, 2, 4], [4, 1, 2, 3], [1, 4, 2, 3], [1, 2, 4, 3], [1, 2, 3, 4]]
思路:
为1时,结果为1
为2时,结果就是两种:1,2 2,1(1的前后插入)
为3时,结果就是六种:1,2,3 1,3,2 3,2,1 (1,2的前中后插入)
3,2,1 2,3,1 2,1,3 (2,1的前中后插入)
代码:
import copy
def full_arrange(n):
data = [] # 中间结果
res = [] # 最终结果
if n == 1 :
return 1
res = [[1]]
for i in range(2, n+1):
for j in range(len(res)): # 遍历res数组(二维数组)
for x in range(len(res[j])+1): # 遍历res数组中的元素(一维数组)
data = copy.copy(res[j]) # 浅拷贝
data.insert(x,i) # 在一维数组的不同位置插入元素,获得新的数组
res.append(data)
x += 1
j += 1
# 删除多余数组(原始数组) 最后保留的数据(一维数组的长度) == i
while True:
if len(res[0]) != i:
res.remove(res[0])
else:
break
i += 1
return res
print(full_arrange(n))
总结
以上所述是小编给大家介绍的Python循环实现n的全排列功能,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/wuhen_n/article/details/98511553
标签:Python,循环,全排列
0
投稿
猜你喜欢
PHP伪静态页面函数附使用方法
2023-11-22 06:25:42
Python将Excel表格按某列拆分为多个sheet实现过程
2021-06-11 06:59:54
Python性能优化技巧
2021-06-29 12:48:32
asp如何用OdbcRegTool组件来创建一个数据源?
2010-06-12 12:55:00
对python中list的拷贝与numpy的array的拷贝详解
2023-06-13 02:18:35
十个简单好用的设计技巧[译]
2009-04-08 12:56:00
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2023-08-24 00:25:21
Sql Server2005对现有数据进行分区具体步骤
2008-06-26 13:18:00
Python单链表原理与实现方法详解
2023-05-21 00:58:37
Python设计模式中的创建型工厂模式
2023-05-09 17:47:02
解决Pandas生成Excel时的sheet问题的方法总结
2021-01-13 14:24:44
使用Title提升可访问性二
2009-11-16 12:53:00
Python面向对象之内置函数相关知识总结
2022-06-05 10:30:24
python-序列解包(对可迭代元素的快速取值方法)
2023-12-28 23:23:57
详解Python中for循环是如何工作的
2021-07-04 17:41:40
吴恩达机器学习练习:SVM支持向量机
2023-10-30 11:49:53
ASP sql:rs.open语句详细说明
2008-03-17 11:30:00
python selenium 获取标签的属性值、内容、状态方法
2021-03-12 23:02:46
python过滤中英文标点符号的实例代码
2022-11-09 13:43:09
python+flask编写一个简单的登录接口
2021-06-09 21:19:02