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用ConfigObj读写配置文件的实现代码
Mar 04 Python
粗略分析Python中的内存泄漏
Apr 23 Python
Python实现针对中文排序的方法
May 09 Python
python 调用c语言函数的方法
Sep 29 Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 Python
3个用于数据科学的顶级Python库
Sep 29 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
Django上线部署之IIS的配置方法
Aug 22 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
基于SpringBoot构造器注入循环依赖及解决方式
Apr 26 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
python热力图实现的完整实例
Jun 25 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP安全编程之加密功能
2006/10/09 PHP
20个PHP常用类库小结
2011/09/11 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
JavaScript中URL编码函数代码
2011/01/11 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
javascript实现密码验证
2015/11/10 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
python中的字符串内部换行方法
2018/07/19 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
高校毕业生登记表自我鉴定
2013/11/03 职场文书
自我评价如何写好?
2014/01/05 职场文书
大学生求职自我评价
2014/01/16 职场文书
个人授权委托书范文
2014/09/21 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
学校党员干部承诺书
2015/05/04 职场文书
催款函怎么写
2015/06/24 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
创业计划书之溜冰场
2019/10/25 职场文书