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登录Gmail并发送Gmail邮件的教程
Apr 17 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
python 字典(dict)按键和值排序
Jun 28 Python
Python设计模式之中介模式简单示例
Jan 09 Python
Pandas 合并多个Dataframe(merge,concat)的方法
Jun 08 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 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 curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
php封装的表单验证类完整实例
2016/10/19 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
js实现无缝轮播图
2020/03/09 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Python基于WordCloud制作词云图
2019/11/29 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
青年文明号复核材料
2014/02/11 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
监考失职检讨书
2015/01/26 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python