python非递归全排列实现方法


Posted in Python onApril 10, 2017

刚刚开始学习python,当前看到了函数这一节。结合数组操作,写了个非递归的全排列生成。原理是插入法,也就是在一个有n个元素的已有排列中,后加入的元素,依次在前,中,后的每一个位置插入,生成n+1个新的全排列。因为Python切割数组或者字符串,以及合并比较方便,所以,程序会节省很多代码。

def getArrayInsertCharToStr(STR,CHAR):
  arr =[]
  s_len = len(STR)
  index =0
  while index <= s_len:
    #分割字符串
    arr.append(STR[:index]+CHAR+STR[index:s_len])
    index = index + 1
  return arr  

def getArrayInsertCharToArray(array,CHAR):
  index = 0
  re_array = []
  while index < len(array):
    re_array = re_array + getArrayInsertCharToStr(array[index],CHAR)
    index = index + 1
  return re_array       

def getPermutation(STR):
    resultArr = [STR[0]]
    for item in STR[1:]:
      resultArr = getArrayInsertCharToArray(resultArr,item)
    return   resultArr


print(getPermutation('abc'))

以上这篇python非递归全排列实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
python实现发送邮件及附件功能
Mar 02 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
python批量复制图片到另一个文件夹
Sep 17 Python
Python判断telnet通不通的实例
Jan 26 Python
python获取地震信息 微信实时推送
Jun 18 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
python文件选择对话框的操作方法
Jun 27 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
python3.6中anaconda安装sklearn踩坑实录
Jul 28 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
Jan 15 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 #Python
Python贪吃蛇游戏编写代码
Oct 26 #Python
OpenCV实现人脸识别
Apr 07 #Python
python使用opencv进行人脸识别
Apr 07 #Python
Python 实现链表实例代码
Apr 07 #Python
python中如何使用朴素贝叶斯算法
Apr 06 #Python
python获取当前运行函数名称的方法实例代码
Apr 06 #Python
You might like
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
vuex直接赋值的三种方法总结
2018/09/16 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
python根据出生日期返回年龄的方法
2015/03/26 Python
python实现在控制台输入密码不显示的方法
2015/07/02 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python基于select实现的socket服务器
2016/04/13 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python中property属性实例解析
2018/02/10 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
农药学硕士毕业生自荐信
2013/09/25 职场文书
大学生的网上创业计划书
2013/12/31 职场文书
七一讲话心得体会
2014/09/05 职场文书
小学生通知书评语
2014/12/31 职场文书
职工培训工作总结
2015/08/10 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
Python入门之基础语法详解
2021/05/11 Python
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python