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