'''
取一個起始位置和一個結束位置,結束位置用於往活動字符串(列表)中放字符。
如果活動列表長度大於最長列表的長度,替換。
如果活動列表中存在該字符並且原字符串中的起始位置和結束位置對應的值相同,結束位置賦值給起始位置。
否則起始位置等於原字符串中該字符對應索引的下一個位置。
'''
b = 'abaaacddff'
# k = input()
# print(b.index(k))
max_string = []
ac_string = []
lis = list(b)
start = 0
end = 0
while end != len(b):
if b[end] not in ac_string:
ac_string.append(b[end])
end +=1
else:
if lis[start] == lis[end]: #篩選出全是重復的例子:aaaaa這種
start = end
else:
start = start + ac_string.index(b[end]) +1 #aaabb這種,當第二個b不能與a(最后一個a),則應該把start從第二個b開始
end = start
ac_string = []
if len(max_string) < len(ac_string):
max_string = ac_string
max_string = ''.join(max_string)
print(max_string)