import java.util.Scanner;

public class Main {
   private static void printVector(int[] v) {
       for(int i : v)
           System.out.print(i + " ");
       System.out.println();
   }

   public static void gen01(int[] vector, int index) {
       if (index < 0)
           printVector(vector);

       else {
           for (int i = 0; i <= 1; i++) {
               vector[index] = i;
               gen01(vector, index - 1);
           }
       }
   }

   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.print("Enter size for a vector: ");
       int size = Integer.parseInt(scanner.nextLine());
       int[] vector = new int[size];
       gen01(vector, size - 1);
   }
}

@@ -40,16 +40,54 @@
  Main %7B%0A
+    private static int counter = 0;%0A%0A 
    priva
@@ -131,16 +131,17 @@
 %0A       
+ 
 for(int 
@@ -147,16 +147,17 @@
  i : v)%0A
+ 
         
@@ -185,32 +185,33 @@
  + %22 %22);%0A       
+ 
 System.out.print
@@ -216,16 +216,17 @@
 ntln();%0A
+ 
    %7D%0A%0A  
@@ -218,38 +218,40 @@
 ln();%0A    %7D%0A%0A   
-public
+ private
  static void gen
@@ -276,24 +276,25 @@
 nt index) %7B%0A
+ 
        if (i
@@ -302,13 +302,18 @@
 dex 
-%3C 0)%0A
+== -1) %7B%0A 
     
@@ -344,26 +344,58 @@
 r);%0A
-%0A
+     
        
-else %7B%0A   
+return;%0A        %7D%0A%0A        counter++;%0A
     
@@ -441,19 +441,16 @@
         
-   
 vector%5Bi
@@ -460,19 +460,16 @@
 x%5D = i;%0A
-   
         
@@ -510,28 +510,19 @@
     
-   
 %7D%0A
- 
+%0A
     
-  %7D%0A   
 %7D%0A%0A
+ 
    p
@@ -568,16 +568,17 @@
 %0A       
+ 
 Scanner 
@@ -611,16 +611,17 @@
 em.in);%0A
+ 
        S
@@ -673,16 +673,17 @@
 %0A       
+ 
 int size
@@ -730,16 +730,17 @@
 %0A       
+ 
 int%5B%5D ve
@@ -761,16 +761,17 @@
 %5Bsize%5D;%0A
+ 
        g
@@ -794,15 +794,53 @@
 e - 1);%0A
+        System.out.println(counter);%0A 
    %7D%0A%7D%0A

Update 03.Generating-01Vector.java