first_repeat(codes) that returns the first code that appears a second time while scanning left to right, or None if every code is unique. A set makes each lookup O(1).first_repeat(['A1', 'B2', 'C3', 'B2', 'A1'])
'B2'
B2 completes its second appearance before A1 does.
Track everything seen so far in a set.
The first membership hit is the answer.