Je pense que vous cherchez des boucles imbriquées.
Exemple (basé sur votre montage) :
t1=[1,2,'Hello',(1,2),999,1.23]
t2=[1,'Hello',(1,2),999]
t3=[]
for it1, e1 in enumerate(t1):
for it2, e2 in enumerate(t2):
if e1==e2:
t3.append((it1,it2,e1))
# t3=[(0, 0, 1), (2, 1, 'Hello'), (3, 2, (1, 2)), (4, 3, 999)]
Qui peut être réduit à une seule compréhension :
[(it1,it2,e1) for it1, e1 in enumerate(t1) for it2, e2 in enumerate(t2) if e1==e2]
Mais pour trouver les éléments communs, il suffit de faire :
print set(t1) & set(t2)
# set([(1, 2), 1, 'Hello', 999])
Si votre liste contient des objets non hachables (comme d'autres listes, des dicts), utilisez un ensemble figé :
from collections import Iterable
s1=set(frozenset(e1) if isinstance(e1,Iterable) else e1 for e1 in t1)
s2=set(frozenset(e2) if isinstance(e2,Iterable) else e2 for e2 in t2)
print s1 & s2