给出项目组的列表K,每个组拥有一些固定数量的项目,从该组中生成所有(全部)项目置换的省时算法是什么?
示例:如果K = {A:3,B:2,C:4},那么这是三个有效置换:
AAABBCCCC ABACCBCCA CBACCBCAA
似乎与格雷码有一定关系,但是随着权重的增加,我不确定如何扩展它。尝试做得比单调增加总置换值并在每次迭代时重置都要好。
您可以查看“ 13.2多重集的排列”这里https://jjj.de/fxt/fxtbook.pdf