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爬虫之神器正则表达式
Nov 06 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
Python多进程同步简单实现代码
Apr 27 Python
python实现Adapter模式实例代码
Feb 09 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
python保存文件方法小结
Jul 27 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
PyQt QListWidget修改列表项item的行高方法
Jun 20 Python
Python3进制之间的转换代码实例
Aug 24 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
python命令 -u参数用法解析
Oct 24 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 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
在PWS上安装PHP4.0正式版
2006/10/09 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
多广告投放代码 推荐
2006/11/13 Javascript
永不消失的title提示代码
2007/02/15 Javascript
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Python计算IV值的示例讲解
2020/02/28 Python
学校后勤岗位职责
2014/02/19 职场文书
小学毕业寄语大全
2014/04/03 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
运动会闭幕词
2015/01/28 职场文书
员工家属慰问信
2015/03/24 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL