Ragazzi sto cercando di fare un esercizio ma proprio non ci riesco

devo inserire una stringa da liena di comando e da questa parola devo ricavare tutte le possibili combinazioni di parole da tre lettere.

Esempio:
ciao --> cia, cio, cai, cao, coi, eccetera...

ho scritto questo codice ma non funziona correttamente, riuscite a capire dove sbaglio?

package capitolo10;

import java.io.*;


public class Esercizio10_21 {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Stub di metodo generato automaticamente

BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));

String parola = tastiera.readLine();
char array[] = parola.toCharArray();
String output="";

for(int i=0; i<array.length; i++)
for(int y=0; y<array.length; y++)
for(int z=0; z<array.length; z++)
{
output=""+array[i];


if(y==i)
{
do
{
y++; System.out.println("y++"+y);
if(array.length-1<y)
{y=0; System.out.println("if"+y);}
}
while(y==i);{}
output+=array[y]; System.out.println("output "+output);
}
else if(y!=i)
{output+=array[y]; System.out.println("else "+output);}




if(z==y || z==i)
{
do
{
z++;
if(array.length-1<z)
z=0;
}
while(z==y && z==i);
output+=array[z];
}
else if(i!=z || y!=z)
output+=array[z];




System.out.println(output);
}



}

}