如何在Perl中生成数组的所有排列?

前端之家收集整理的这篇文章主要介绍了如何在Perl中生成数组的所有排列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是最好的(优雅,简单,高效)的方式来产生所有的n!一个数组在perl中的排列?

例如,如果我有一个数组@arr =(0,1,2),我想输出所有排列:

0 1 2
0 2 1
1 0 2
1 2 0
2 0 1
2 1 0

它应该是一个返回迭代器的函数(延迟/延迟评估,因为n!可能变得如此不可能大),所以它可以像这样调用

my @arr = (0,1,2);
my $iter = getPermIter(@arr);
while (my @perm = $iter->next() ){
    print "@perm\n";
}

解决方法

猜你在找的Perl相关文章