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 字符串定义
Sep 25 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
python学习必备知识汇总
Sep 08 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
Python列表切片常用操作实例解析
Dec 16 Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
python tkinter实现连连看游戏
Nov 16 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
php轻松实现文件上传功能
2016/03/03 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
详解django中自定义标签和过滤器
2017/07/03 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Hotels.com南非:酒店预订
2017/11/02 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
初中考试作弊检讨书
2014/02/01 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
甘南现象心得体会
2014/09/11 职场文书
英语辞职信范文
2015/02/28 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书