在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。非常感谢您的解决方案。它为我节省了很多不必要的工作。非常感谢你的解决方案。这节省了我很多不必要的工作。