XOR a nivel de bits de números hexadecimales en python

¿Cómo podemos XOR números hexadecimales en python, por ejemplo. Quiero xor 'ABCD' a '12EF'. la respuesta debe ser B922.

Usé el siguiente código pero está devolviendo valor de basura

def strxor(a, b):     # xor two strings of different lengths
 if len(a) > len(b):
    return "".join(["%s" % (ord(x) ^ ord(y)) for (x, y) in zip(a[:len(b)], b)])
else:
    return "".join(["%s" % (ord(x) ^ ord(y)) for (x, y) in zip(a, b[:len(a)])])

key ='12ef'
m1='abcd'
print  strxor(key,m1)

Respuestas a la pregunta(5)

Su respuesta a la pregunta