Auxilio exercicio programação

Boa tarde,

Pessoal, o seguinte, não tenho muito conhecimento na linguagem java mas TEM que ser em java entao… preciso fazer um trabalho de aula e estou quebrando a cabeça pra bolar uma solução e tá difícil, ainda nem consegui programar nada, o que preciso fazer é:

Um programa que recebe um alfabeto com X simbolos(podem ser letras ou números, não preciso dizer qts, posso digitar por exemplo abcd e o programa vai saber que meu alfabeto tem 4 simbolos) e recebe também a informação de que deve escrever palavras com Y simbolos (digito por exemplo 3 e ele tem que me retornar qts palavras diferente ele pode formar com este alfabeto) mas temos regras, ele não pode escrever um simbolo menor depois de um maior, ele só escreve simbolos maior ou igual ao úlltimo escrito, exemplo:

alfabeto: 1234
com 3 simbolos

saida: 111, 112, 113, 114, 122, 123, 124… Ele não pode escrever por exemplo 121, 132, 243, 341…

tem que dizer qts podem ser formadas e escrevê-las na tela…

Se alguem puder me dar uma idéia de como fazer em java…?

ps, meu prof. disse que temos q pensar pois a resolução pode ser em umas 6-7 linhas(fora declarações iniciais do programa…) claro que essa deve ser a resolução mais eficiente, quero primeiramente conseguir o objetivo. hehehe

Estou estudando livros de java tb mas como nao tenho muito tempo estou pedindo ajuda.

Obrigado.

grato