First of all, never tamper with a list while iterating on it..
Second, your code is checking if i == the item you're popping. That will always be true since when you're popping an item python returns you that item. So it's no use to compare it with i, because you have just popped i. It's like comparing if i == i..
Try your function for t = ['1', '2', '3'] and use a debugger to verify what I'm saying..
You could do the following since you can't use sets:
def has_duplicates(t):
#first have a backup to keep the iteration clean
t_backup = t.copy()
for i in t_backup:
#first pop the item
t.pop(t.index(i))
#then check if such item still exists
if i in t:
return True
return False