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的Django框架中的Memcached
Jul 23 Python
详解python的几种标准输出重定向方式
Aug 15 Python
Django接受前端数据的几种方法总结
Nov 04 Python
Python时间戳使用和相互转换详解
Dec 11 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
详解pandas的外部数据导入与常用方法
May 01 Python
python递归下载文件夹下所有文件
Aug 31 Python
python程序中的线程操作 concurrent模块使用详解
Sep 23 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
Python timeit模块原理及使用方法
Oct 10 Python
pyqt5实现井字棋的示例代码
Dec 07 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 星际争霸
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
php类常量用法实例分析
2015/07/09 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
jQuery插件开发基础简单介绍
2013/01/07 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python 8种必备的gui库
2020/08/27 Python
python 模拟登陆github的示例
2020/12/04 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
python中str内置函数用法总结
2020/12/27 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
Oracle性能调优原则
2012/05/03 面试题
自荐信怎么写好
2013/11/11 职场文书
财务方面个人工作的自我评价
2013/12/28 职场文书
村干部任职承诺书
2015/01/21 职场文书
初中团委工作总结
2015/08/13 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS