private void generateCombination(int input[], int start, int pos, List<Set<Integer>> allSets, int result[]) {
        if(pos == input.length) {
            return;
        }
        Set<Integer> set = createSet(result, pos);
        allSets.add(set);
        for(int i=start; i < input.length; i++) {
            result[pos] = input[i];
            generateCombination(input, i+1, pos+1, allSets, result);
        }
    }
Date 11/17/2015
@author Tushar Roy

Help Karp method of finding tour of traveling salesman.

Time complexity - O(2^n * n^2)
Space complexity - O(2^n)

https://en.wikipedia.org/wiki/Held%E2%80%93Karp_algorithm
src/com/interview/graph/TravelingSalesmanHeldKarp.java