使用Python中的itertools打印字符串的前n个不同的排列
许多对象的排列表示更新如何以不同的顺序出现。但是有时候我们可能在一系列相同的给定对象中有两个对象。在这种情况下,两个序列将相等。在本文中,将看到如何仅表示给定对象列表中的唯一序列。
itertools模块具有一种称为置换的方法,可以帮助我们实现这一目标。为了获得唯一的排列,我们利用set方法的帮助,该方法仅存储不同的元素。但是在此之前,我们使用sorted方法按排序顺序获得了元素。
在下面的程序中,K是我们希望在整个可能的唯一排列中显示的唯一元素的最大数量。使用while循环,我们将唯一元素添加到要显示的最终列表中,仅当它尚未添加到最终列表中时才显示组。
示例
from itertools import permutations
def permutation_value(str, k):
s = sorted(list(str))
p = permutations(s)
m = 0
set_1 = set() str = ''
while m < k:
str = ''.join(p.__next__())
if str not in set_1:
set_1.add(str)
print(str)
m += 1
str = "xyxxz"
i = 12
permutation_value(str, i)输出结果
运行上面的代码给我们以下结果-
xxxyz xxxzy xxyxz xxyzx xxzxy xxzyx xyxxz xyxzx xyzxx xzxxy xzxyx xzyxx
热门推荐
10 感谢韩语老师祝福语简短
11 升职文案高级祝福语简短
12 花童结婚祝福语大全简短
13 向国庆送祝福语简短
14 什么寄语简短祝福语女生
15 客户回礼祝福语大全简短
16 女孩生日祝福语简短创意
17 家长回复节日祝福语简短
18 给外婆敬酒祝福语简短