generates all possible arrangement of a characters in a string