use ntheory ":all"; my %seen; forpart { my @p=@_; forperm { my $s="@p[@_]"; say $s unless $seen{$s}++; } scalar(@p); } 5,{n=>3}; #### 3 1 1 1 3 1 1 1 3 2 2 1 2 1 2 1 2 2 #### $ perl -Mntheory=:all -E 'forcomp { say "@_" } 5,{n=>3}' 1 1 3 1 2 2 1 3 1 2 1 2 2 2 1 3 1 1 #### use ntheory ":all"; forpart { formultiperm { say "@_"; } [@_]; } 5,{n=>3};