python非递归全排列实现方法

发布时间 - 2026-01-11 00:34:47    点击率:

刚刚开始学习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递归全排列实现方法  # python使用递归解决全排列数字示例  # Python递归生成全排列序列实操  # 给大家  # 是在  # 也就  # 已有  # 希望能  # 写了  # 这篇  # 在前  # 小编  # 大家多多  # 看到了  # 这一节  # py  # brush  # getArrayInsertCharToStr  # def 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11怎么设置默认图片查看器_Windows11照片应用关联设置  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何实现javascript表单验证_正则表达式有哪些实用技巧  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何在橙子建站中快速调整背景颜色?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  网站建设整体流程解析,建站其实很容易!  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  lovemo网页版地址 lovemo官网手机登录  微信小程序 HTTPS报错整理常见问题及解决方案  香港服务器建站指南:免备案优势与SEO优化技巧全解析  想要更高端的建设网站,这些原则一定要坚持!  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  南京网站制作费用,南京远驱官方网站?  Linux网络带宽限制_tc配置实践解析【教程】  详解jQuery停止动画——stop()方法的使用  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何在局域网内绑定自建网站域名?  Linux安全能力提升路径_长期防护思维说明【指导】  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel如何实现数据库事务?(DB Facade示例)  详解jQuery中的事件  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何快速上传自定义模板至建站之星?  Python并发异常传播_错误处理解析【教程】  如何在IIS中新建站点并解决端口绑定冲突?  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  浅述节点的创建及常见功能的实现  如何快速搭建自助建站会员专属系统?  如何快速生成凡客建站的专业级图册?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何用IIS7快速搭建并优化网站站点?  如何在阿里云部署织梦网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何快速生成橙子建站落地页链接?  如何在万网主机上快速搭建网站?