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

Perl 如何枚举所有可能的元素组合,perl,combinations,Perl,Combinations,我想列举所有可能的数组元素组合。例如:我有一个数组: $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_permutati

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

$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;
事实证明,这是有原因的:

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;

从这个例子来看,
permute
更合适。最后一项表明顺序或项目是重要的。从示例来看,
permute
更合适。最后一项显示订单或项目的重要性。