给定特定条件的排列的Python实现

在下列条件下,如何生成排列?

>有两个整数,例如. 1和4.
>给出的两个整数将是排列的一部分,其中每个整数最多出现N次,每个排列的大小为K.

因此,假设N = 3且K = 5,那么正确的结果应该是:

{1, 1, 1, 4, 4} , {1, 1, 4, 1, 4} , {4, 4, 4, 1, 1} , etc..

以下是无效或不正确结果的示例:

{1, 1, 1, 1, 4} -> 1 appear 4 times (1 should appear not greater than 3 times)

{1, 4, 4, 4, 1, 1} -> the size of the list is 6 (the size should be exactly 5)

此外,每个排列应该是唯一的,这意味着没有重复.

我希望我能为这个问题找到最好的解决方案或算法.

提前致谢.

上一篇:c – 从数字中获取所有组合而不重复


下一篇:[POI2008]PER-Permutation