Я хочу перечислить все возможные комбинации элементов массива. Например: у меня есть массив:
$r = ('a1','a2','a3' ...).
Я хочу напечатать все комбинации массивов элементов: a1a2, a1a3, a1a2a3 и т. д. где a1a2! = a2a1, a1a2a3! = a1a3a2 ...
Оказывается, для этого есть модуль :
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;