如何枚举所有可能的元素组合

时间:2011-02-09 15:34:01

标签: perl combinations

我想枚举元素数组的所有可能组合。例如:我有数组:

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

我想打印元素数组的所有组合: a1a2,a1a3,a1a2a3等。 哪里 a1a2!= a2a1,a1a2a3!= a1a3a2 ...

1 个答案:

答案 0 :(得分:4)

事实证明,那里有a module

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;