【发布时间】:2019-01-05 02:18:10
【问题描述】:
我正在尝试编写一个函数,通过交换某些允许的元素对来生成列表的所有可能配置。
例如,如果我们有列表:
lst = [1, 2, 3, 4, 5]
我们只允许交换以下元素对:
pairs = [[0, 2], [4, 1]]
也就是说,如果列表与第 2 个元素交换,我们只能交换第 0 个元素,第 4 个元素与第 1 个元素交换(可以有任意数量的允许交换对)。 考虑到允许的交换,我希望该函数返回列表的不同配置的数量。
由于我计划为大型列表和许多允许的交换运行此功能,因此该功能最好尽可能高效。
我找到了通过交换所有元素(一次交换两个)来生成排列的示例,但我找不到指定某些允许交换对的方法。
【问题讨论】:
标签: python list combinations permutation cartesian-product