Lo siento, pero sigo sin saber a que te refieres. He modificado el codigo añadiendole indice+1 y indice-1, y en la llamada recursiva solo el indice. Así for(Boolean a : getAlternativa(lista,indice,presupueto)){ //Las alternativas
if(a == true){
presupueto+=Test.lista.get(indice).getCoste(); //Añado
lista.add(Test.lista.get(indice));
}
indice = indice+1;
recursividad(indice, lista,presupueto);
indice = indice -1;
if(a == true){
presupueto-=Test.lista.get(indice).getCoste(); //Elimino