in reply to all binary combinations
Showing your code will help understand where you are stuck and what it is you are doing; Is it a minor problem with the way you make your recursive calls or something else?
But here is something that might help:
If you look at the strings you are trying to generate you will notice that a recursive function will generate the same substring multiple times.
For example, the string '01' is generated twice once for each of '001' and '101'. This is clearly not necessary.
When you write out your recursive program you need to ensure that your code does not have to do this. One way to do that is to maintain an array ( potentially multidimensional ) which holds previously calculated values.
Give this a shot - Let us know what you get.