/* Affichage de toutes les combinaisons        */
/* de n valeurs existant un ensemble           */
/* de n valeurs                                */
/* Application a un tableau de caracteres      */

public class AffichageCombinaisons {
  
/////////////////////////////////////////////////

/* Affichage de toutes les combinaisons        */
/* de n valeurs existant un ensemble           */
/* de n valeurs                                */
/* Application a un tableau de caracteres      */

  static void affichage(char [] e,char [] t,int nb) {
    char v;
    if ( nb == t.length ) {
      for ( int i = 0 ; i < nb ; i++ ) {
        Ecran.afficher(t[i]); }
      Ecran.afficherln(); }
      else {
      for ( int i = 0 ; i < e.length-nb ; i++ ) {
        t[nb] = e[i];
        v = e[i];
        e[i] = e[e.length-nb-1];
        affichage(e,t,nb+1);
        e[e.length-nb-1] = e[i];
        e[i] = v; } }
  }

/////////////////////////////////////////////////

/* Programme principal                         */

  public static void main(String [] args) {
    String s;
    int n;
    int i;
    int nb;
    Ecran.afficher("Lettres? ");
    s = Clavier.saisirString();
    char [] e = s.toCharArray();
    n = e.length;
    char [] t = new char[n];
    affichage(e,t,0);
  }
}