def find_marker(signal:str, marker_length=4) -> int: for i in range(marker_length,len(signal)): subsignal = signal[i-marker_length:i] if len(set(subsignal)) == marker_length: return i else: return -1 test = [ 'mjqjpqmgbljsphdztnvjfqwrcgsmlb', 'bvwbjplbgvbhsrlpgdmjqwftvncz', 'nppdvjthqldpwncqszvftbrmjlhg', 'nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg', 'zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw' ] for s in test: print(find_marker(s), find_marker(s, 14), ) print('~'*10) with open('2022/6/datastream.txt') as filein: signal = filein.read() print(find_marker(signal), find_marker(signal, 14))