using backtracking to print all possible orders of numbers

hi there,

i've started working on the knapsack problem. i have an array of a given number of items, the robber can only steal up to a limited weight. so i thought i would create an array of the same length that holds only '1' or '0'. 1-stolen, 0-left.

the method i have here is supposed to print all possible combinations of '0' and '1' in the length of the array of items. if there are 2 items that can be stolen i would create an array of 2 that will hold these numbers:

00

01

10

11

which represents all the possible cases

so here's my code

Code:

`public class Backtracking {`

//this method prints all the possible combinations of the digits '1' and '0'

//in a given number of digits (which is order.length)

//@param order - the given array of int. for now only its size matters

//@param index - the method will work on order[index]

//@param newValuse - either '1' or '0'

private static void orders(int[] order, int index, int newValue) {

if (index==order.length) {

//when the number of digits in the current number

//reaches order.length print it i.e. if order.length is 3

//and we have '000' or '001' print it

System.out.println("entered end condition");

for (int i=0; i<=index-1; i++) {

System.out.print(order[i]+" ");

}

System.out.println();

}

else {

System.out.println("entered recursion at index "+index);

System.out.println("input "+newValue);

order[index]=newValue;

index+=1;

orders(order, index, 0);

System.out.println("changing value to 1 at index "+index);

orders(order, index, 1);

}

}

public static void main (String[] args) {

int[] weights = {3,3};

orders(weights, 0, 0);

}

}

it doesn't give me all possible combinations. if i called the method from main using the parameter newValue=0 it will only print the numbers starting with 0.

also it prints everything twice

here's my output:

Code:

`entered recursion at index 0`

input 0

entered recursion at index 1

input 0

entered end condition

0 0

changing value to 1 at index 2

entered end condition

0 0

changing value to 1 at index 1

entered recursion at index 1

input 1

entered end condition

0 1

changing value to 1 at index 2

entered end condition

0 1

hope i was clear enough

how can i make it right? thank you!