Lista de todas las combinaciones binarias para un número en Java

Estoy trabajando en un proyecto que involucra "Programación dinámica" y estoy impresionado con esta cosa trivial, por favor ayuda.

Supongo que tomo 4 como entrada, quiero mostrar algo como: 0000 a 1111

Pero, si ingreso 5, quiero mostrar como: 00000 a 11111 y así sucesivamente.

Gracias por adelantado

EDITA: No publiques pidiéndome el código. Este no es un problema de tarea y no necesito ningún código, solo dígame la lógica y estaré feliz.

EDIT2: WTH está sucediendo con Stackoverflow, ¿les pedí a alguno de ustedes que escribieran código por mí? Quiero que la persona que votó negativamente lo vote a favor. ¿Qué sentido tiene este foro si no puedo pedir ayuda?

Comparta la lógica conmigo. Podemos discutir y no necesito el código para esto.

EDIT3: Aquí estoy publicando el código que probé. Espero que esto "SATISFAGA" a todas las personas que pensaban que no había probado nada.

import java.util.ArrayList;

public class RegularInvestigator

public ArrayList createCombinations (ArrayList listOfFlightNumbers)

ArrayList<String> result = new ArrayList<String>();

for(int i = 1; i < listOfFlightNumbers.size(); i++) {

  String binaryEqvivalent = Integer.toBinaryString(i);System.out.println(binaryEqvivalent);
  String element = "";

  for(int j = 0; j < binaryEqvivalent.length(); j++)
    if(binaryEqvivalent.charAt(j) == '1')
      element += listOfFlightNumbers + " ";

  result.add(element.substring(0, element.length() - 1));
}

return result;

}

private String getContent(ArrayList<String> flight) {
String temp = "";

for(int i = 0; i < flight.size() - 1; i++)  temp += flight.get(i) + " ";

temp += flight.get(flight.size() - 1);

return temp;

}

private ArrayList removeElementAtIndex (ArrayList flight, int position)

ArrayList<String> res = new ArrayList<String>();

for(int i = 0; i < flight.size(); i++) {
  if(i != position) res.add(flight.get(i));
}

return res;

}}

EDIT4: Gracias phoxis, PengOne, Jerry Coffin y oliholz por sus valiosas respuestas:)

Respuestas a la pregunta(6)

Su respuesta a la pregunta