sub gen_seqs { my ($n) = @_; my @seqs = (); if($n == 1) { $seqs[0] = [0]; $seqs[1] = [1]; } else { my @seqs_0 = &gen_seqs($n-1); for my $seq (@seqs_0) { unshift @$seq, 0; } my @seqs_1 = &gen_seqs($n-1); for my $seq (@seqs_1) { unshift @$seq, 1; } push @seqs, @seqs_0, @seqs_1; } return @seqs; }