'Why XOR function does not print out the expected hex value?

So I have the following function and I wonder why when I xor X and Y, it does not print out the hex value as expected_result? Is there anything I need to add? Am I missing something in the function?

def xor(X, Y):
  return "".join([chr(ord(a) ^ ord(b)) for (a, b) in zip(X, Y)])
X = "Hello World"
Y = "supersecret"
print(xor(X,Y))

expected_result = "3b101c091d53320c000910"



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source