在Python中有没有一种有效的方法可以用重复的数字生成数字?
我试图从在Python中有没有一种有效的方法可以用重复的数字生成数字?,python,permutation,Python,Permutation,我试图从{1,2,3,4,5,6,7,8,9}中生成所有5位数字,这样任何数字最多可以重复两次。也就是说,像12345、11267、11226这样的数字是允许的,但是11134或11115是不允许的 我可能可以编写一个包含多个for循环的代码,但我想知道是否有更简短、更优雅的方法可用。 例如,itertools.product('123456789',repeat=5)将生成所有这5个元组(9^5总计)或itertools.permutation('123456789',5)将生成所有5不重复的
{1,2,3,4,5,6,7,8,9}
中生成所有5位数字,这样任何数字最多可以重复两次。也就是说,像12345、11267、11226这样的数字是允许的,但是11134或11115
是不允许的
我可能可以编写一个包含多个for循环的代码,但我想知道是否有更简短、更优雅的方法可用。
例如,itertools.product('123456789',repeat=5)
将生成所有这5个元组(9^5
总计)或itertools.permutation('123456789',5)
将生成所有5
不重复的元组(9x8x7x6x5
)。我想知道是否有一种方法可以使用这些工具来生成表单的所有数字11235和11224
,而不需要经过多个for循环之类的操作。除非我误解了这个问题,只需使用
itertools.permutations('112233445566778899',5)
我们应该做到这一点
编辑:包括重复,因为每个数字有两个。将其包装成一组似乎可以解决以下问题:
set(itertools.permutations('112233445566778899',5))
除非我误解了这个问题,用
itertools.permutations('112233445566778899',5)
我们应该做到这一点
编辑:包括重复,因为每个数字有两个。将其包装成一组似乎可以解决以下问题:
set(itertools.permutations('112233445566778899',5))
这个问题似乎比Data Science StackExchange更适合StackOverflow。这个问题比Data Science StackExchange更适合StackOverflow。非常感谢您的解决方案。它为我节省了很多不必要的工作。非常感谢你的解决方案。这节省了我很多不必要的工作。