python使用递归解决全排列数字示例
时间:2022-02-22 04:14:49
第一种方法:递归
def perms(elements):
if len(elements) <=1:
yield elements
else:
for perm in perms(elements[1:]):
for i in range(len(elements)):
yield perm[:i] + elements[0:1] + perm[i:]
for item in list(perms([1, 2, 3,4])):
print item
结果
[1, 2, 3, 4]
[2, 1, 3, 4]
[2, 3, 1, 4]
[2, 3, 4, 1]
[1, 3, 2, 4]
[3, 1, 2, 4]
[3, 2, 1, 4]
[3, 2, 4, 1]
[1, 3, 4, 2]
[3, 1, 4, 2]
[3, 4, 1, 2]
[3, 4, 2, 1]
[1, 2, 4, 3]
[2, 1, 4, 3]
[2, 4, 1, 3]
[2, 4, 3, 1]
[1, 4, 2, 3]
[4, 1, 2, 3]
[4, 2, 1, 3]
[4, 2, 3, 1]
[1, 4, 3, 2]
[4, 1, 3, 2]
[4, 3, 1, 2]
[4, 3, 2, 1]
第二种方法:python标准库
import itertools
print list(itertools.permutations([1, 2, 3,4],3))
源代码如下:
#coding:utf-8
import itertools
print list(itertools.permutations([1, 2, 3,4],3))
def perms(elements):
if len(elements) <=1:
yield elements
else:
for perm in perms(elements[1:]):
for i in range(len(elements)):
yield perm[:i] + elements[0:1] + perm[i:]
for item in list(perms([1, 2, 3,4])):
print item
标签:python,递归,全排列
0
投稿
猜你喜欢
RS.GETROWS使用详解
2008-01-16 13:21:00
利用sort()和Math.random()实现元素的随机排列
2010-10-19 12:42:00
详解常用查找数据结构及算法(Python实现)
2023-02-27 02:03:21
Python中new方法的详解
2022-12-06 14:20:18
Go中strings的常用方法详解
2023-06-27 01:58:32
python3.6.3安装图文教程 TensorFlow安装配置方法
2021-06-25 19:20:42
Python中字符编码简介、方法及使用建议
2021-10-11 21:58:33
python并发编程多进程 模拟抢票实现过程
2022-03-07 11:53:05
PHP实现多文件上传的方法
2023-11-23 03:42:04
Pytorch之finetune使用详解
2021-08-31 20:41:44
asp dictionary对象使用介绍
2008-05-30 13:51:00
主流浏览器性能比较
2009-10-19 14:34:00
网页代码更清晰高效的一些经验
2008-05-19 12:23:00
将TensorFlow的模型网络导出为单个文件的方法
2022-11-11 07:30:13
程序员的七种武器
2008-11-01 17:13:00
Pyhhon之Pygame的Font文本和字体
2021-08-14 13:00:33
三条asp语句搞定路径
2007-10-22 13:30:00
Python自然语言处理之切分算法详解
2023-02-02 04:46:34
python中使用iterrows()对dataframe进行遍历的实例
2023-12-29 13:43:02
ORACLE 数据库RMAN备份恢复
2009-04-24 12:23:00