`
provista
  • 浏览: 122091 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

全排列的Python实现

阅读更多
啥也不说了,碰巧看到,就存着,OVER。

def perm(l):
	if(len(l)<=1):
		return [l]
	r=[]
	for i in range(len(l)):
		s=l[:i]+l[i+1:]
		p=perm(s)
		for x in p:
			r.append(l[i:i+1]+x)
	return r


测试:
if __name__=='__main__':
    """ default param is list(1,2,3,4,5) """
    l=[];
    if(len(sys.argv)<=1):
        """input=['%d' %(i) for i in xrange(1,6)]"""
        l=list((1,2,3,4,5))
        
    else:#input param looks like "2,3,4,5,6",no legal checks here.
        input=str(sys.argv[1])
        l=input.split(",")
        
        for i in xrange(len(l)):
            l[i] = int(l[i])
    print perm(l)
分享到:
评论
1 楼 lseeo 2009-09-09  
非常不错!

相关推荐

    给出一组元素,将其进行全排列(Python实现)

    给出一组元素,将其进行全排列(Python实现)

    python递归全排列实现方法

    本篇将重点介绍如何使用Python通过递归的方式来实现全排列。 首先,我们要理解递归的概念。递归是一种编程方法,它通过调用自身来解决问题或执行任务。在全排列问题中,我们可以将全排列视为一个由较小规模的子问题...

    python实现全排列代码(回溯、深度优先搜索)

    总结来说,Python实现全排列可以通过回溯法和深度优先搜索两种方式。两者都是递归策略,但回溯法需要在每次尝试后恢复状态,而DFS则利用了访问标记来简化这个过程。无论是回溯还是DFS,它们都能有效地生成给定数组的...

    python 实现全排列 II

    # 给定一个可包含重复数字的序列,返回所有不重复的全排列 # 示例: # 输入: [1,1,2] # 输出: # [ # [1,1,2], # [1,2,1], # [2,1,1] # ]

    Python实现排列组合生成算法

    排列组合生成算法的python实现。实现方法参考了维基百科中的combination和permutation词条。 使用方法: python combinations.py #按字典序生成6中选3的组合(数字代码中可以调整) python arrangement.py #按字典序...

    Python实现全排列的打印

    本文将详细介绍如何使用Python实现全排列的打印,以及其中涉及的关键知识点。 首先,我们需要了解全排列的基本概念。全排列问题可以理解为,给定一个数n,我们需要找出所有可能的从1到n的数字组合,并且每个组合中...

    如何通过python实现全排列

    在Python编程中,我们可以使用多种方法来实现全排列。这里我们将详细讨论两种常见的方法:一种是使用Python标准库中的`itertools`模块,另一种是采用递归的方式实现。 1. 使用`itertools.permutations`实现全排列:...

    python练习fibonacci全排列

    总结起来,"python练习fibonacci全排列"这个主题涵盖了基础的算法知识,包括Fibonacci数列的不同计算方法和全排列问题的解决策略。通过学习和实践这些内容,可以提升对算法的理解和应用能力,有助于在实际编程项目中...

    python非递归全排列实现方法

    ### Python非递归全排列实现方法详解 #### 一、引言 在计算机科学与编程领域,全排列问题是一个常见的组合数学问题。全排列是指从给定的n个不同元素中取出m(m≤n)个元素,按照一定的顺序排列起来的方式。递归...

    通过全排列以及判断的方法来求出所有的出栈序列(Python实现)

    通过全排列以及判断的方法来求出所有的出栈序列(Python实现)

    Python循环实现n的全排列功能

    本篇将详细讲解如何使用Python循环来实现n的全排列功能。 首先,全排列的实现通常采用递归或回溯法,但这里我们采用循环的方式。循环实现的关键在于将新元素插入到已排列元素的不同位置,逐步生成所有可能的排列。 ...

    Python字符串的全排列算法实例详解

    #### 三、Python实现全排列 接下来,我们将会详细介绍如何使用Python来实现字符串的全排列算法。我们将通过一个具体的例子来解释每一步的操作。 #### 四、实现步骤 为了实现全排列,我们可以采用递归的方法来完成。...

    python——全排列数的生成方式

    本文将探讨如何使用Python实现全排列数的生成方式。 首先,我们来看一个基于递归的解决方案。这里的核心函数是`perm`,它接受一个列表`n`,一个开始位置`begin`和一个结束位置`end`作为参数。当`begin`等于`end`时...

    python标准算法实现数组全排列的方法

    在Python中实现全排列,一个简单且直接的方法是使用递归。通过递归,我们可以将问题规模缩小,直到达到基本情况,从而得到所有可能的排列组合。在本篇文章中,将介绍一种利用递归实现数组全排列的方法,以及其原理和...

    python通过yield实现数组全排列的方法

    本篇文章将详细讲解如何利用Python的`yield`关键字来高效地实现全排列。 `yield`是Python中的一个特殊语句,它用于定义生成器函数。生成器函数不同于普通函数,它不会一次性计算出所有结果,而是每次调用`next()`或...

    全排列算法 实例 一种实现了n个数全排列的算法

    下面是一个基于回溯法的全排列算法的Python实现: ```python def permute(nums): res = [] def backtrack(first=0): if first == len(nums): res.append(nums[:]) for i in range(first, len(nums)): nums...

Global site tag (gtag.js) - Google Analytics