use String::Combination qw(combination); my @comb = combination('12345678',8); print "@comb[6..12]\n@comb[62..68]\n"; #### 23456781 32456781 34256781 34526781 34562781 34567281 34567821 23456781 32456781 34256781 34526781 34562781 34567281 34567821