#CJam, 20
CJam, 20
q{__,{\_N+oSt}/;W<}h
Explanation:
q read the input (initial string)
{…}h do … while
_ copy the current string
_, copy and get the length
{…}/ for each value (say i) from 0 to length-1
\ bring the string to the top
_N+o make a copy, append a newline and print
St set the i'th element to S=" "
; pop the last result (array full of spaces)
W< remove the last character of the current string
if the string is empty, the do-while loop terminates