from itertools import product text = "foobar" L = [''.join(reversed(x)).rstrip() for x in product(*[(c, c+' ') for c in reversed(text)])] print L
['foobar', 'f oobar', 'fo obar', 'fo obar', 'foo bar', 'f oo bar', 'fo o bar', 'foo bar', 'foob ar', 'f oob ar', 'fo ob ar', 'fo ob ar', 'foo b ar', 'f oo b ar', 'fo ob ar', 'foob ar', 'fooba r', 'f ooba r', 'fo oba r', 'fo oba r', 'foo ba r', 'f oo ba r', 'fo o ba r', 'foo ba r', 'foob a r', 'f oob a r', 'fo ob a r', 'fo ob a r', 'foo ba r', 'f oo ba r', 'fo oba r', 'fooba r', 'foobar', 'f oobar', 'fo obar', 'fo obar', 'foo bar', 'f oo bar', 'fo o bar', 'foo bar', 'foob ar', 'f oob ar', 'fo ob ar', 'fo ob ar', 'foo b ar', 'f oo b ar', 'fo ob ar', 'foob ar', 'fooba r', 'f ooba r', 'fo oba r', 'fo oba r', 'foo ba r', 'f oo ba r', 'fo o ba r', 'foo ba r', 'foob a r', 'f oob a r', 'fo ob a r', 'fo ob a r', 'foo ba r', 'f oo ba r', 'fo oba r', 'fooba r']