public void findPermuntationshelper(List soFar, List toGo,  List successes)
	{
		//success case
		//if toGo is empty, sucess!
		if(toGo.isEmpty())
		{
			successes.add(soFar);
			return;
		}
		//failure case = when is this needed?
		
		//for loop to try each element of toGo
		//"try" here means here means make a recursive call with a larger so far and a smaller toGo
		for(int index = 0; index < toGo.size();index++)
		{
			Integer i = (Integer)toGo.get(index);
			List<Integer> newSofar = new ArrayList<Integer>(soFar);
			newSofar.add(i);
		
			
			List<Integer> newToGo = new ArrayList<Integer>(toGo);
			newToGo.remove(i);
			findPermuntationshelper( newSofar,newToGo,successes);
		}
		//return successes;
	}