#! perl -slw use strict; sub adjSets{ my $min = shift; map { my $start = $_; map { [ @_[ $start .. $_ ] ] } $min .. $#_; } 0 .. $#_ - $min; } print "@$_" for adjSets( 2, 'A'..'E' );; __END__ A B C A B C D A B C D E B C B C D B C D E C C D C D E