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?