A parte il titolo che fa pensare a qualcosa di completamente diverso (mi dava l'idea che avevi un array di roba e volevi tipo mettere tutto insieme in una stringa).

Soluzione stupida (da bambino delle elementari, la prima roba che mi e' venuta in mente) e per niente generica, ovvero funziona solo con i numeri di 4 cifre e cicla tutti i numeri da 0 a 9999, ma ci mette solo 108 ms nel mio iMac. Sta a te trovare un modo piu' efficiente ed eventualmente generico.

codice:
import java.util.*;

public class Duplicates
{
    public static boolean hasDuplicates (int n)
    {
        int n1000 = n / 1000;
        int n100 = (n - n1000 * 1000) / 100;
        int n10 = (n - n1000 * 1000 - n100 * 100) / 10;
        int n1 = (n - n1000 * 1000 - n100 * 100 - n10 * 10);
        if (n1000 == n100 || n1000 == n10 || n1000 == n1 || n100 == n10 || n100 == n1 || n10 == n1) {
            return true;
        }
        else {
            return false;
        }
    }
    
    public static void main (String[] args)
    {
        long start = System.currentTimeMillis();
        List<Integer> l = new ArrayList<Integer>();
        for (int i = 0; i <= 9999; i++) {
            if (!hasDuplicates (i)) {
                System.out.println (i);
                l.add (i);
            }
        }
        long stop = System.currentTimeMillis();
        System.out.println ("Total time = " + (stop - start));
    }
}