Acho que uma alternativa interessante a se testar é criar uma lista com todas as possibilidades e ir sorteando um elemento aleatório dentro dela — no python isso poderia ser feito usando random.choice()
— e removendo esse elemento da lista para que ele não possa ser sorteado novamente
Em resposta a Como gerar números aleatórios sem repetição
1
1
Sim, isso funciona se vc só precisa fazer uma vez.
Mas e se eu quiser gerar vários conjuntos (por exemplo, quero gerar vários jogos da mega sena)? Nesse caso, não compensa ficar recriando a lista toda hora, é melhor criá-la apenas uma vez no começo, e depois embaralhá-la várias vezes (nem precisa "resetar" a lista).
Mesmo assim, no caso específico do Python, não vejo motivo pra não usar random.sample
, que é feito justamente pra isso (e sem modificar a lista original).