Господа, вы это серьёзно?
Почему не так?
Код:
def is_passed(a, b, c, d):
if a == c and b == d:
return True
else:
return False
Ну и проверять на пересечении множеств (a, b).
Да ито, так слишком надумано, достаточно кортеж (a, b) проверить на вхождение в список кортежей возможных вариантов.
Код:
>>> foo = [(1, 2), (3, 4), (5, 6)]
>>> foo
[(1, 2), (3, 4), (5, 6)]
>>> a = (3, 4)
>>> a in foo
True
>>> (1, 2) in foo
True
>>> (1, 3) in foo
False
Список кортежей с условиями уж думаю перемножением сам сгенерируешь.
З.Ы. Собственно Финн дал код той же сути, только он оперировал произведением чисел, а не кортежем.