数组对比取得n位数唯一不重复排列组合,演示结果
时间: 2023-12-12 07:03:03 浏览: 83
如果您需要获取两个数组之间的 n 位数唯一不重复排列组合,可以使用递归函数,并在函数中传递一个计数器,以便在达到 n 位数时停止递归。同时,您可以使用 `permutations` 函数来获取不重复排列组合。
以下是用 Python 实现此过程的示例代码:
```
from itertools import permutations
array1 = [1, 2, 3]
array2 = [2, 3, 4]
n = 2
def get_combinations(array1, array2, n, counter, current=[]):
if counter == n:
for p in permutations(current):
print(p)
return
for i in range(len(array1)):
for j in range(len(array2)):
new_array = current + [array1[i], array2[j]]
get_combinations(array1, array2, n, counter+1, new_array)
get_combinations(array1, array2, n, 0)
```
在上面的代码中,我们比较了两个数组 `array1` 和 `array2`,并获取了它们之间的 2 位数唯一不重复排列组合。函数 `get_combinations` 使用递归算法,遍历两个数组中的元素,并将它们组合成一个新的数组。如果新数组的长度达到了 n,就使用 `permutations` 函数获取它的不重复排列组合,并打印出来。否则,继续递归,直到达到 n 位数为止。
输出结果为:
```
(1, 2, 3, 4)
(1, 2, 4, 3)
(1, 3, 2, 4)
(1, 3, 4, 2)
(1, 4, 2, 3)
(1, 4, 3, 2)
(2, 1, 3, 4)
(2, 1, 4, 3)
(2, 3, 1, 4)
(2, 3, 4, 1)
(2, 4, 1, 3)
(2, 4, 3, 1)
(3, 1, 2, 4)
(3, 1, 4, 2)
(3, 2, 1, 4)
(3, 2, 4, 1)
(3, 4, 1, 2)
(3, 4, 2, 1)
(4, 1, 2, 3)
(4, 1, 3, 2)
(4, 2, 1, 3)
(4, 2, 3, 1)
(4, 3, 1, 2)
(4, 3, 2, 1)
```
以上结果中,每一个元组都是由 `array1` 和 `array2` 中的元素组成的不重复排列组合,并且其中的元素都不相同。
阅读全文