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过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
pandas 数据归一化以及行删除例程的方法
Nov 10 Python
python读取目录下最新的文件夹方法
Dec 24 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
postman传递当前时间戳实例详解
Sep 14 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
python文件和文件夹复制函数
Feb 07 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
Java如何基于wsimport调用wcf接口
Jun 17 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捕获Fatal error错误的方法
2014/06/11 PHP
smarty简单分页的实现方法
2014/10/27 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
python3.0 字典key排序
2008/12/24 Python
python判断字符串是否包含子字符串的方法
2015/03/24 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
python字符串Intern机制详解
2019/07/01 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
一套比较完整的软件测试人员面试题
2012/05/13 面试题
教师对学生的寄语
2014/04/03 职场文书
植树造林的宣传标语
2014/06/23 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
三八妇女节慰问信
2015/02/14 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
apache ftpserver搭建ftp服务器
2022/05/20 Servers