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编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
python绘图方法实例入门
May 19 Python
python生成验证码图片代码分享
Jan 28 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
Python实现注册、登录小程序功能
Sep 21 Python
Python中的元组介绍
Jan 28 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
利用Python校准本地时间的方法教程
Oct 31 Python
Python txt文件常用读写操作代码实例
Aug 03 Python
基于Python实现将列表数据生成折线图
Mar 23 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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php防盗链的常用方法小结
2010/07/02 PHP
php二维码生成以及下载实现
2017/09/28 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
javascript如何创建对象
2016/08/29 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
python实现旋转和水平翻转的方法
2018/10/25 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
使用python模拟命令行终端的示例
2019/08/13 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
Keras搭建自编码器操作
2020/07/03 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
Python实现异步IO的示例
2020/11/05 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
财务简历的自我评价
2014/03/05 职场文书
2015年资料员工作总结
2015/04/25 职场文书
寒假致家长的一封信
2015/10/10 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android