codice:
int count=0;

ArrayList<String> carrozza=new ArrayList<String>();
int lunghezza=3;
int postiCons=2;

int k=(int)Math.pow(2,lunghezza)-1;

char[] charPosti=new char[postiCons];
Arrays.fill(charPosti,'1');
String consPosti=new String(charPosti);


while(k>=0){
	String or=Integer.toBinaryString(k);
	char[] charArray=new char[lunghezza-or.length()];
	Arrays.fill(charArray,'0');
	String str=new String(charArray)+or;
	if(str.indexOf(consPosti)>=0){
		count++;
	}
	k--;

}
Dovrei elencare tutte le possibili combinazioni con le impostazioni di lunghezza (numero di posti totali disponibili) e postiCons (n° minimo di posti consecutivi occupati)
Nell'esempio sopra mi elenca le combinazioni
|1|1|0|
|0|1|1|
|1|1|1|

Esiste un modo per procedere "al contrario" cioè non verificando tutte le possibili combinazioni ma crearle/elencarle direttamente? Ad esempio con lunghezza 8 e postiCons 3 dovrei creare le combinazioni
|1|1|1|0|0|0|0|0|
|1|1|1|1|0|0|0|0|
|1|1|0|0|1|1|1|0|
|1|1|0|0|1|1|1|1|
e via dicendo.

Grazie