Пересечение списков (поиск одинаковых элементов в двух списках)

Если даны два списка и необходимо найти их совпадающие элементы («область пересечения списков»), т.е. те которые есть и в одном списке и в другом, то это легко можно сделать с помощью цикла for языка программирования Python.
Код ниже подходит для списков, содержащих неповторяющиеся значения в самих себе. Иначе в результирующем списке могут появится одинаковые элементы.

a = [5,[1,2],2,'r',4,'ee']
b = [4,1,'we','ee',2,'r',[1,2]]
c = []
for i in a:
    for j in b:
        if i == j:
            c.append(i)
            break
 
print (c)

Алгоритм поиска очень прост. Берется первый элемент первого списка (внешний цикл for) и последовательно сравнивается с каждым элементом второго списка (вложенный цикл for). В случае совпадения (равенства) значений элемент добавляется в третий список, который до этого был создан. Команда break здесь служит для выхода из цикла, т.к. в случае совпадения дальнейший поиск при данном значении i бессмысленный.