Precisa de ajuda na construção de um algoritmo eficiente de busca exaustiva

Existem 10 botões. Esses botões podem destravar a trava se forem pressionados na ordem correta (5 pressionamentos em seqüência). Cada botão pressiona dispara a verificação de desbloqueio.

Exemplo: "password" é 123456 e eu pressiono os botões 0 1 2 3 4 5 6 Eu destravo a trava do sexto botão.

Eu preciso projetar um algoritmo que tente todas as combinações possíveis da maneira mais eficiente (ou seja, a quantidade mínima de botões deve ser pressionada).

Eu posso interpretar o número do botão como dígito e número do botão pressionado em seqüência como posição do dígito e, em seguida, tentar todas as 99999 combinações na tentativa de desbloquear o bloqueio, mas eu sinto que há um algoritmo mais eficiente para fazer isso.

Existe algo que eu possa fazer para otimizar essa pesquisa?

questionAnswers(1)

yourAnswerToTheQuestion