Combinação

Alguem me dê ideias de um algoritmo para fazer combinações, por exemplo:

k de n, onde k é o numero de elementos que quero combinar e n o total de numeros:
por exemplo:

k=3 e n=5

  • quero a saída ({1,2,3}, {1,2,4}, {1,2,5}, {1,3,4},{1,3,5},{1,4,5}), a ordem não importa. e elementos não podem repetir.

por incrivel que pareça isso não é um trabalho de escola.

Agradeço sugestões.

Amigo se você estudar o que está aqui: http://www.ime.usp.br/~pf/mac0122-2003/aulas/permut.html, vai ficar facinho.

Meu código faz as combinações que eu quero, mas ele está amarrado a combinações com 03 números, alguem pode me dar uma ideia como de fato posso usar o k, ou seja como faço para que este código faça combinações com grupos de k’s numeros.

 public static void combinacao(int k,int n) {
       int max = n + 1 - k;
        //Pega os numero informado e adicona no array
        for(int i=1; i<=max; i++){
            for(int j=i+1; j<=n; j++){
                  for(int l=j+1; l<=n; l++){
                      System.out.print(i+" "+j+" "+l+" \n");
                  }
            }
        }
    }

Atenciosamente