Python程序打印给定字符串的所有排列

本文概述

  • python
  • 通过使用内置函数
排列(也称为” 排列编号” 或” 顺序” )是将有序列表S的元素重新排列为与S本身一一对应的关系。长度为n的字符串为n!排列。
资料来源:Mathword(http://mathworld.wolfram.com/Permutation.html)
以下是字符串ABC的排列。
ABC++ACB BAC++BCA CBA CAB
python
# Python program to print all permutations with # duplicates alloweddef toString( List ): return ''.join( List )# Function to print permutations of string # This function takes three parameters: # 1. String # 2. Starting index of the string # 3. Ending index of the string. def permute(a, l, r): if l = = r: print toString(a) else : for i in xrange (l, r + 1 ): a[l], a[i] = a[i], a[l] permute(a, l + 1 , r) a[l], a[i] = a[i], a[l] # backtrack# Driver program to test the above function string = "ABC" n = len (string) a = list (string) permute(a, 0 , n - 1 )# This code is contributed by Bhavya Jain

输出如下:
ABC ACB BAC BCA CBA CAB

通过使用内置函数 为了找到给定字符串的排列, 我们使用内置函数。你可以使用itertools模块, 该模块具有称为permutations(iterable [, r])的有用方法。此方法将返回可迭代元素的连续r长度排列作为元组。你需要遍历函数调用并加入元组。
# Python program to print all permutationsfrom itertools import permutations print [' '.join(p) for p in permutations(' ABC')] # This code is contributed by Vidit Varshney

输出如下:
['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA']

【Python程序打印给定字符串的所有排列】请参考完整的文章编写程序以打印给定字符串的所有排列更多细节!

    推荐阅读