Random changes in a list of binary numbers
You could replace
        for position in range(l):
            if random.random() &lt; mu:
                intList[number] = intList[number] ^ (1 &lt;&lt; position)

with
        for bit in bits:
            if random() &lt; mu:
                intList[number] ^= bit

after preparing bits = [1 &lt;&lt; position for position in range(l)] before the show and importing the random function.
Don't know whether that helps when using numba, and you didn't provide benchmark code.