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导出数据到Excel可读取的CSV文件的方法
May 12 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python读大数据txt
Mar 28 Python
Python 调用PIL库失败的解决方法
Jan 08 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
使用python接入微信聊天机器人
Mar 31 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
python的time模块和datetime模块实例解析
Nov 29 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
详解python的变量缓存机制
Jan 24 Python
Python绘制数码晶体管日期
Feb 19 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 和 MySQL 基础教程(一)
2006/10/09 PHP
实现php加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
jquery 图片轮换效果
2010/07/29 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
Python中functools模块的常用函数解析
2016/06/30 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
python实现感知机模型的示例
2020/09/30 Python
python 写一个水果忍者游戏
2021/01/13 Python
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
致裁判员加油稿
2014/02/08 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle