Si potrebbe utilizzare una struttura di backtracking, immagina un albero, parti dal tronco ad esplorare tutte le possibili configurazioni che hai a disposizione, ogni volta che hai più di una scelta crei nuovi rami in cui esamini tutte le possibili strade da percorrere per arrivare alla soluzione.
Ci si potrebbe riuscire con la ricorsione. Alcuni casi particolari che mi viene da farti notare sono:
parola: 001
alfabeto: 0 10 001
-----
parola: 0101
alfabeto: 010 01 0