Si, giustamente con alcune condizioni if sull'output dei vari cicli for, si filtra il risultato finale. Anche perchè, se non sbaglio, con un algoritmo del genere si stamperebbero m^n stringhe (m corrisponde alla quantità degli elementi della lista, n al numero di caratteri della stringa...