源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python使用递归解决全排列数字示例

  • 时间:2022-05-21 12:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python使用递归解决全排列数字示例
第一种方法:递归
[u]复制代码[/u] 代码如下:
def perms(elements):     if len(elements) <=1:         yield elements     else:         for perm in perms(elements[1:]):             for i in range(len(elements)):                 yield perm[:i] + elements[0:1] + perm[i:] for item in list(perms([1, 2, 3,4])):     print item
结果
[u]复制代码[/u] 代码如下:
[1, 2, 3, 4] [2, 1, 3, 4] [2, 3, 1, 4] [2, 3, 4, 1] [1, 3, 2, 4] [3, 1, 2, 4] [3, 2, 1, 4] [3, 2, 4, 1] [1, 3, 4, 2] [3, 1, 4, 2] [3, 4, 1, 2] [3, 4, 2, 1] [1, 2, 4, 3] [2, 1, 4, 3] [2, 4, 1, 3] [2, 4, 3, 1] [1, 4, 2, 3] [4, 1, 2, 3] [4, 2, 1, 3] [4, 2, 3, 1] [1, 4, 3, 2] [4, 1, 3, 2] [4, 3, 1, 2] [4, 3, 2, 1]
第二种方法:python标准库
[u]复制代码[/u] 代码如下:
import itertools print list(itertools.permutations([1, 2, 3,4],3))
源代码如下:
[u]复制代码[/u] 代码如下:
#coding:utf-8 import itertools print list(itertools.permutations([1, 2, 3,4],3)) def perms(elements):     if len(elements) <=1:         yield elements     else:         for perm in perms(elements[1:]):             for i in range(len(elements)):                 yield perm[:i] + elements[0:1] + perm[i:] for item in list(perms([1, 2, 3,4])):     print item
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部