#	expander - 文字列を展開するプログラム
#		by Rogi (2006/12/13)
#
#	例：aa[2-4][d-f]gg
#		→	aa2dgg
#			aa2dgg
#			aa2egg
#			aa2fgg
#			aa3dgg
#			aa3egg
#			aa3fgg
#			aa4dgg
#			aa4egg
#			aa4fgg
#		という風に展開する．
#
#	Usage:
#		perl expander.pl compressed_expression
#			compressed_expression  圧縮表現([開始文字-終了文字]というフォーマットを含める)
#



my @list;
my $flag = 1;


push @list, $ARGV[0];

while($flag == 1) {
	$flag  = 0;
	
	my $i;
	for($i = 0; $i <= $#list; $i++) {
		while($list[$i] =~ /^(.*?)\[([\d\w]+)\-([\d\w]+)\](.*)$/) {
			&expand($1, $2, $3, $4);
			splice @list, $i, 1;
			$flag = 1;
		}
	}
}

foreach(@list) {
	print "$_\n";
}

exit;

#===========================================

sub expand {
	
	#$_[0] =~ /^(.*?)\[(.+)\-(.+)\](.*)$/;
	
	foreach($_[1] .. $_[2]) {
		push @list, "$_[0]$_$_[3]";
	}
}

