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下载文件记录黑名单的实现代码
Oct 24 Python
Python Socket使用实例
Dec 18 Python
获取python的list中含有重复值的index方法
Jun 27 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
Python OS模块实例详解
Apr 15 Python
使用django的ORM框架按月统计近一年内的数据方法
Jul 18 Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
简述python Scrapy框架
Aug 17 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
编写python程序的90条建议
Apr 14 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
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
python正则表达式re模块详细介绍
2014/05/29 Python
详解Python中的type()方法的使用
2015/05/21 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
Python变量类型知识点总结
2019/02/18 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
numpy库reshape用法详解
2020/04/19 Python
如何在python中判断变量的类型
2020/07/29 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
销售业务员岗位职责
2014/01/29 职场文书
联谊会主持词
2014/03/26 职场文书
2015年元旦活动总结
2014/05/09 职场文书
大学校园招聘会感想
2015/08/10 职场文书