我正在尝试生成两个值的可能排列列表,每个值只包含相同数量的值。
我最接近的是产品排列,然后是计数器,但这显然是错误的方式,并且消耗大量内存超过20的值。
lst = ['d', 'r']
correct = 0
for x in product(lst, repeat=20):
y = Counter(x)
if y['d'] == y['r']:
correct += 1
print(correct)
我也尝试了一组排列,但由于某些原因,它的效率甚至低于产品算法:
lst = ['d', 'r'] * 10
print(len(set(permutations(lst)))
任何人都可以建议使用不同的工具,或者将产品生成限制为仅使用每个元素的相同数量的迭代吗?