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发送arp欺骗攻击代码分析
Jan 16 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
python 不以科学计数法输出的方法
Jul 16 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
Django中提示消息messages的设置方式
Nov 15 Python
python如何基于redis实现ip代理池
Jan 17 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
使用pth文件添加Python环境变量方式
May 26 Python
如何理解Python中包的引入
May 29 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
Jan 30 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php zend 相对路径问题
2009/01/12 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
javascript import css实例代码
2008/07/18 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
javascript时间函数大全
2014/06/30 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
舞蹈教师自荐信
2014/01/27 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
Spring Boot 实现 WebSocket
2022/04/30 Java/Android