描述:

输入一个大于0的整数n,输出1到n的全排列:

例如:

n=3,输出[[3, 2, 1], [2, 3, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [1, 2, 3]]

n=4,输出[[4, 3, 2, 1], [3, 4, 2, 1], [3, 2, 4, 1], [3, 2, 1, 4], [4, 2, 3, 1], [2, 4, 3, 1], [2, 3, 4, 1], [2, 3, 1, 4], [4, 2, 1, 3],

[2, 4, 1, 3], [2, 1, 4, 3], [2, 1, 3, 4], [4, 3, 1, 2], [3, 4, 1, 2], [3, 1, 4, 2], [3, 1, 2, 4], [4, 1, 3, 2], [1, 4, 3, 2],

[1, 3, 4, 2], [1, 3, 2, 4], [4, 1, 2, 3], [1, 4, 2, 3], [1, 2, 4, 3], [1, 2, 3, 4]]

思路:

为1时,结果为1

为2时,结果就是两种:1,2 2,1(1的前后插入)

为3时,结果就是六种:1,2,3 1,3,2 3,2,1 (1,2的前中后插入)

3,2,1 2,3,1 2,1,3 (2,1的前中后插入)

代码:

import copy

def full_arrange(n):

data = [] # 中间结果

res = [] # 最终结果

if n == 1 :

return 1

res = [[1]]

for i in range(2, n+1):

for j in range(len(res)): # 遍历res数组(二维数组)

for x in range(len(res[j])+1): # 遍历res数组中的元素(一维数组)

data = copy.copy(res[j]) # 浅拷贝

data.insert(x,i) # 在一维数组的不同位置插入元素,获得新的数组

res.append(data)

x += 1

j += 1

# 删除多余数组(原始数组) 最后保留的数据(一维数组的长度) == i

while True:

if len(res[0]) != i:

res.remove(res[0])

else:

break

i += 1

return res

print(full_arrange(n))

总结

以上所述是小编给大家介绍的Python循环实现n的全排列功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

python双层for循环实现全排列_Python循环实现n的全排列功能相关推荐

  1. python循环语句嵌套_Python 循环语句

    循环语句 ​循环语句主要是用于解决某些重复的代码工作,使需要重复的代码只写一遍即可. Python循环语句主要有两种:while循环和for...in...循环. 一.while循环 主要用于不确定循 ...

  2. python循环1000次_python循环

    循环的作用在于将一段代码重复执行多次. while 循环 while : Python会循环执行,直到不满足为止. 例如,计算数字0到1000000的和: i = 0 total = 0 while ...

  3. python循环5次_python循环5次

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我们不可能一个一个的去加,为了让计算机能计算成千上万次的重复运算,我们就需要循环 ...

  4. python循环一百次_python循环

    解决重复操作,循环避免了出现大量的重复操作. 比如要计算1+2+3,我们可以直接写表达式 >>> 1 + 2 + 3 6 但是要计算1~100的累加和,我们不可能一个一个的去加,为了 ...

  5. python 循环嵌套例子_Python循环嵌套案例-打印九九乘法表

    今天我们来学习一个简单的循环嵌套的例子,循环嵌套作为Python开发中比较重要的一个知识点,往往能够用它实现很多实用的功能.Python中的循环语法主要是while ...和for ... in .. ...

  6. python中颜色可以用在循环中吗_Python循环颜色

    您可以使用itertools.cycle的算法循环使用任意数量的颜色:from graphics import * def cycle(iterable): """ Py ...

  7. python循环10次1001python循环10次_Python循环题怎么做?

    知乎视频​www.zhihu.com 虽然这题目很简单, 穷举的运算量很小, 但是最好还是要动点脑筋, 这样才有乐趣. 二位数 + 三位数 = 四位数 很明显, 这个三位数是9开头的, 又因为是回文数 ...

  8. pythonfor循环语句例题_python循环语句的使用练习题

    1. 使用while循环输出1 2 3 4 5 6 8 9 10 for i in range(10) : if i==6 : print(' ',end=' ') continue print(i+ ...

  9. python二元多次函数拟合_Python实现的拟合二元一次函数功能示例【基于scipy模块】...

    本文实例讲述了Python实现的拟合二元一次函数功能.分享给大家供大家参考,具体如下: 背景: 使用scipy拟合一元二次函数. 参考: HYRY Studio-<用Python做科学计算> ...

  10. python列表生成式和map效率_Python列表生成式12个小功能,你常用哪几个?

    作者 | zglg来源 | Python与算法社区 []表示一个列表,对容器类型的数据进行运算和操作,生成新的列表最高效.快速的办法,就是列表生成式. 它优雅.简洁,值得大家多多使用!今天盘点列表生成 ...

最新文章

  1. 外省籍进城务工人员随迁子女在浙江就地升学政策出台
  2. 软件设计原则——合成复用原则
  3. 【C++】构建栈 进栈和出栈
  4. android vivox21 适配,还在苦等Android P的适配?原来这些功能vivo X21早都有了
  5. Mesos容器引擎的架构设计和实现解析
  6. vue设置textarea最大字数_【Vue 学习】 Vue常用系统指令
  7. Head First Java Stick 01
  8. JavaScript-箭头函数
  9. 低压电气控制技能实训装置
  10. 傅里叶分析(通俗解释)
  11. ensp的下载与安装教程
  12. win10家庭版调出组策略_普通用户选择哪个Win10系统版本?家庭版与专业版的对比介绍...
  13. mmo mysql_一次MMO游戏服务器性能压测记录
  14. php6基因突变,基因突变中那些“披着狼皮的羊” 很多“致命性”基因突变正在被证实无害...
  15. python rasterio库和gdal库匹配与冲突问题安装办法
  16. uni-app 开发微信公众号(H5)JSSDK 的使用方式
  17. 文化中国 系列一:明朝的那些人儿
  18. cij期刊_核心期刊评价与文献计量学研究CJournalJLX
  19. 代码阅读——十个C开源项目
  20. 19个免费的ppt制作网站

热门文章

  1. View Horizon Mirage安装手册(三)——Mirage Management安装
  2. ntldr is missing什么意思应该如何解决
  3. idea中有些类明明在jar包里有,但是却搜不到
  4. 从C# 3.0说以人为本(二)—— LINQ语法结构
  5. python实现归并算法
  6. WPF中的Application类。
  7. Swoole 结合TP5创建http服务
  8. Activiti 统一身份管理
  9. 一文带你全面了解虚拟机的四种网络模型(图文并茂)
  10. RTL8211E应用(一)之芯片功能介绍