#Mathematica 89 bytes r@i_:=StringReplace[i,#->" "]&/@(Complement[y,#]&/@Subsequences[y=Characters@i])//Column ---------- **Explanation** `i` refers to the input string `Subsequences[y=Characters@i]` returns all subsequences (represented lists of characters) of the input. (`Subsequences` was introduced in v. 10.0.4) For each subsequence, `Complement...` returns those characters from the input string that are **not** present. Each of those characters is replaced by an empty space via `StringReplace[i,#->" "]`. `Column` displays the results in a single column. Each output string has the same number of characters, resulting in aligned letters. ---------- r@"abcdefgh" [![output][1]][1] [1]: https://i.sstatic.net/u5o5Y.png