Obtendo todas as combinações de valores possíveis

Para uma coisa de teste automático, eu tenho uma classe com ~ 15 parâmetros. Desejo gerar instâncias da classe automaticamente para todas as combinações de valores possíveis. Por exemplo, se a classe foi definida assim:

class meep():
    def __init__(self):
        self.par1 = 0 # can be in range {0-3}
        self.par2 = 1 # can be in range {1-2}
        self.par3 = a # can be in range {a-c}

Qual é o mais eficiente para obter instâncias dele com todas as combinações de valores possíveis? (IE

inst1=(par1=0,par2=1,par3=a), 
inst2=(par1=0,par2=1,par3=b), 
inst3=(par1=0,par2=1,par3=c),
inst4=(par1=1,par2=1,par3=a), 
inst5=(par1=1,par2=1,par3=b), 
inst6=(par1=1,par2=1,par3=c),

etc.)

questionAnswers(1)

yourAnswerToTheQuestion