Как перечислить все возможные комбинации элементов - PullRequest
0 голосов
/ 09 февраля 2011

Я хочу перечислить все возможные комбинации элементов массива. Например: у меня есть массив:

$r = ('a1','a2','a3' ...).

Я хочу напечатать все комбинации массивов элементов: a1a2, a1a3, a1a2a3 и т. д. где a1a2! = a2a1, a1a2a3! = a1a3a2 ...

1 Ответ

4 голосов
/ 09 февраля 2011

Оказывается, для этого есть модуль :

use Math::Combinatorics;

@r = qw(a1 a2 a3 ...);
#@all_combinations_of_r = map { combine($_,@r) } 1..@r;
@all_permutations_of_r = map { permute(@$_) } map { combine($_,@r) } 1..@r;
...