data = {
'': [],
'aaaaa': ['a'],
'aabb': ['ab'],
'pwwkew': ['wke'],
'brfgdchi': ['brfgdchi'],
'abcdabcdb': ['abcd', 'bcad', 'cdab', 'dabc'],
}
def main(s):
li = []
left = 0
right = 0
max_length = 0
for c in s:
if c in s[left:right]:
if right - left >= max_length:
if right - left > max_length:
li = []
max_length = right - left
s[left:right] in li or li.append(s[left:right])
left += s[left:right].index(c) + 1
right += 1
return li or [s]
if __name__ == '__main__':
print [main(s) for s, r in data.items()]