def unify(iterable):
    d = {}
for item in iterable:
    d.setdefault(key(item), []).append(item)
return d
A, B = unify(iterableA), unify(iterableB)
return [(A[k], B[k]) for k in A if k in B]
Сравнение наборов без учета регистра в Python