sub permute { return if $_[0] && $_[0] / length($_[0]) != int ($_[0] / length($_[0])); if (!length($_[1])) { print $_[0]." "; return; } for (0..length($_[1])-1) { permute($_[0].substr($_[1],$_,1), substr($_[1],0,$_).substr($_[1],$_+1)); } } #### 1 : 1 12 : 12 123 : 123 321 123456 : 123654 321654 12345678 : 38165472 123456789 : 381654729 1234567890 : 3816547290