def subSeqRec(str_, n, index = -1, curr = "", diff=0, dict_={}, j=0): if j==1: return if index == n: j+=1 return dict_ if diff not in dict_: dict_[diff] = [] dict_[diff] += [curr] for i in range(index+1, n): curr += str_[i] subSeqRec(str_, n, i, curr, i-j, dict_, j) curr = curr[:-1] return dict_ def subSeq(str_): return subSeqRec(str_, len(str_), curr = str_[0]) str_ = input() max_dict = subSeq(str_) print(max_dict)
aaabb
{0: ['a', 'aa'], 1: ['aaa', 'aa'], 2: ['aaaa', 'aaa', 'aaa', 'aa'], 3: ['aaaab', 'aaab', 'aaab', 'aab', 'aaab', 'aab', 'aab', 'ab'], 4: ['aaaabb', 'aaaab', 'aaabb', 'aaab', 'aaabb', 'aaab', 'aabb', 'aab', 'aaabb', 'aaab', 'aabb', 'aab', 'aabb', 'aab', 'abb', 'ab']}