#!/usr/bin/perl use strict; # Eingabe my @array = (1..9); my %res; warn time; oneless(@array); warn time; # Formatierung der Ausgabe # Key als Array umschreiben my @res; while(my($k) = each %res) { push @res, [split /,/, $k]; } # Ergebnisarray schoener sortieren @res = sort { my $r = @$a <=> @$b; if ($r == 0) { join(",", @$a) cmp join(",", @$b); } else { $r; } } @res; require Data::Dumper; print Data::Dumper->new([\@res],['res'])->Indent(0)->Dump, "\n"; sub oneless { my @array = @_; $res{ join",",@array } = 1; return if !@array; for my $i (0 .. $#array) { oneless(map { $array[$_] } 0 .. $i-1, $i+1 .. $#array); } }