Bonjour

Je code une application en java.
Je souhaiterai à partir d'une liste générer toutes les combinaisons possibles de cette liste.
Par exemple, si L=(a,b,c) je veux générer R=(a,b,c,ab,ac,bc).

Je sais le faire dans d'autres langages que le java mais je n'arrive pas à le transposer en java a cause du passage par parametres qui n existe si j ai bien compris que pour les objets.

Par exemple en c, cela donnerai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
#include <stdio.h>
 
#define echanger(a, b)  do {int temp=(a); (a)=(b); (b)=temp;} while (0)
void perm(char *t, int n, int k)
{
  int i;
 
  if (k == n - 1)
    printf("%s\n", t);
  else
    for (i = k; i < n; i++)
      {
        echanger(t[k], t[i]);
        perm(t, n, k + 1);
        echanger(t[i], t[k]);
      }
}
 
int main(void)
{
  char t[] = "oCaml";
 
  perm(t, sizeof t / sizeof *t - 1, 0);
  return 0;
}
Je ne sais pas comment m'y prendre pour qu'il y est une récursivité sans ce passage des paramètres par référence car je dois retourner 3 parametres.

Merci d'avance,