a, seen, result = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5], set(), [] for idx, item in enumerate(a): if item not in seen: seen.add(item)
Edit: You can just use list comprehension in this function, e.g.
def list_duplicates(seq): seen = set() seen_add = seen.add return [idx for idx,item in enumerate(seq) if item in seen or seen_add(item)] print list_duplicates([1, 2, 3, 2, 1, 5, 6, 5, 5, 5])
source share