Generate random number in range excluding some numbers

Is there a simple way in Python to generate a random number in a range excluding some subset of numbers in that range?

For example, I know that you can generate a random number between 0 and 9 with:

from random import randint

What if I have a list, e.g. exclude=[2,5,7], that I don't want to be returned?


  • Try this:

    from random import choice
    print(choice([i for i in range(0,9) if i not in [2,5,7]]))