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操作ssh实现服务器日志下载的方法
Jun 03 Python
python实现批量按比例缩放图片效果
Mar 30 Python
详解python while 函数及while和for的区别
Sep 07 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
python之yield和Generator深入解析
Sep 18 Python
OpenCV模板匹配matchTemplate的实现
Oct 18 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
使用python处理题库表格并转化为word形式的实现
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
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
几个php应用技巧
2008/03/27 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php制作简单模版引擎
2016/04/07 PHP
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python直接访问私有属性的简单方法
2016/07/25 Python
python列表的增删改查实例代码
2018/01/30 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
医学生个人求职信范文
2013/09/24 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
MySQL修炼之联结与集合浅析
2021/10/05 MySQL