python使用递归解决全排列数字示例


Posted in Python onFebruary 11, 2014

第一种方法:递归

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 相关文章推荐
Python时区设置方法与pytz查询时区教程
Nov 27 Python
Python通过websocket与js客户端通信示例分析
Jun 25 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
python+openCV利用摄像头实现人员活动检测
Jun 22 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python requests指定出口ip的例子
Jul 25 Python
Python3离线安装Requests模块问题
Oct 13 Python
Python用input输入列表的实例代码
Feb 07 Python
Python处理mysql特殊字符的问题
Mar 02 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
Python APScheduler执行使用方法详解
Dec 10 Python
python基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 #Python
python基础教程之python消息摘要算法使用示例
Feb 10 #Python
go和python调用其它程序并得到程序输出
Feb 10 #Python
python实现socket端口重定向示例
Feb 10 #Python
python访问sqlserver示例
Feb 10 #Python
python实现代码行数统计示例分享
Feb 10 #Python
python基础教程之获取本机ip数据包示例
Feb 10 #Python
You might like
php使用APC实现实时上传进度条功能
2015/10/26 PHP
PHP7常量数组用法分析
2016/09/26 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
js变量提升深入理解
2016/09/16 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
分享Python文本生成二维码实例
2016/01/06 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
即将毕业大学生自荐信
2014/01/24 职场文书
报社实习生自荐信
2014/01/24 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
九寨沟导游词
2015/02/02 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
如何用python清洗文件中的数据
2021/06/18 Python