📜  Python|使用内置函数排列给定字符串

📅  最后修改于: 2022-05-13 01:54:21.081000             🧑  作者: Mango

Python|使用内置函数排列给定字符串

排列,也称为“排列数”或“顺序”,是将有序列表 S 的元素重新排列为与 S 本身一一对应的关系。一个长度为 n 的字符串有 n!排列。

例子:

Input :  str = 'ABC'
Output : ABC 
         ACB 
         BAC 
         BCA 
         CAB 
         CBA

我们有针对这个问题的现有解决方案,请参考 Permutations of a given 字符串 using STL 链接。我们也可以在Python中使用内置函数permutations(iterable) 来解决这个问题。

# Function to find permutations of a given string
from itertools import permutations
  
def allPermutations(str):
       
     # Get all permutations of string 'ABC'
     permList = permutations(str)
  
     # print all permutations
     for perm in list(permList):
         print (''.join(perm))
        
# Driver program
if __name__ == "__main__":
    str = 'ABC'
    allPermutations(str)
输出:
ABC
ACB
BAC
BCA
CAB
CBA

Python中的排列组合

具有重复字符的给定字符串的排列
这个想法是使用字典来避免打印重复。

from itertools import permutations
import string
  
s = "GEEK"
a = string.ascii_letters
p = permutations(s)
  
# Create a dictionary
d = []
for i in list(p):
  
    # Print only if not in dictionary
    if (i not in d):
        d.append(i)
        print(''.join(i))
输出:
GEEK
GEKE
GKEE
EGEK
EGKE
EEGK
EEKG
EKGE
EKEG
KGEE
KEGE
KEEG