s = 'abcdefg' l = len(s) t = s[0] + str(l-2) + s[l-1] a = [t] a.extend([s[:j] + str(i) + s[i+j:] for i in range(l-3, 0, -1) for j in range(1, l-2)]) a.append(s) print ' '.join(a)
a5g a4fg ab4g abc4 abcd4 a3efg ab3fg abc3g abcd3 a2defg ab2efg abc2fg abcd2g a1cdefg ab1defg abc1efg abcd1fg abcdefg