我在python中有一个元素列表。在最后的代码中,列表的长度将是可变的,列表中的元素会更长,但是我可以用三个虚拟元素来演示我的问题。
基本上,对于任何长度为n的列表,将有n-1个相同的元素和1个唯一的元素。
因此,在以下三个元素的示例中:
test = ['b', 'a', 'a']
对于3之类的小情况,我可以通过肉眼确认元素的顺序,我一直在使用Sympy模块中的函数,如下所示:
permutations = list(multiset_permutations(test))
但是,一旦案例过大,我不确定顺序是否可以预测。而且,检查official documentations并不能很好地为我解决问题。
是否有一种方法可以以可预测的顺序生成这些排列,例如,我可以知道:
permutations[0] = ['b', 'a', 'a']
permutations[1] = ['a', 'b', 'a']
permutations[2] = ['a', 'a', 'b']
感谢您提供的任何帮助。
答案 0 :(得分:0)
在由multiset_permutations
生成排列之前,对元素进行排序。您的结果将取决于输入项的顺序。