#!/usr/bin/perl use strict; use warnings; my @alphabet = ((1..9) , qw(a b c)); sub enum_words { my ($word, $maxlength) = @_; if (length $word < $maxlength) { for my $char (@alphabet) { enum_words($word . $char, $maxlength); } } else { print "$word\n"; } } for my $length (1 .. 4) { enum_words('', $length); }