Для чего-то большего, чем у вас, очень сложно напечатать результаты, поэтому я приведу рабочий пример для чего-то меньшего -
import numpy as np
from itertools import permutations
matrix = np.random.randint(0, 5, (4,2))
print(matrix)
Вывод:
[[4 3]
[3 0]
[1 3]
[3 3]]
Получение перестановок:
k = permutations(matrix, 2)
for sub_matrix in k:
print(sub_matrix)
Вывод:
(array([4, 3]), array([3, 0]))
(array([4, 3]), array([1, 3]))
(array([4, 3]), array([3, 3]))
(array([3, 0]), array([4, 3]))
(array([3, 0]), array([1, 3]))
(array([3, 0]), array([3, 3]))
(array([1, 3]), array([4, 3]))
(array([1, 3]), array([3, 0]))
(array([1, 3]), array([3, 3]))
(array([3, 3]), array([4, 3]))
(array([3, 3]), array([3, 0]))
(array([3, 3]), array([1, 3]))
Итак, в вашем примере вы передали бы 4 в качестве второго аргумента permutations
. Я должен предупредить вас, что вы получите колоссальные 15 249 024 перестановок.
РЕДАКТИРОВАТЬ:
Чтобы получить комбинации, а НЕ перестановки, вы должны заменить permutations
на combinations
.Даже в этом случае вы получите 635 376 результатов.Берегитесь перед печатью!