public void permuteUtil(char str[], int count[], char result[], int level, List<String> resultList) {
        if (level == result.length) {
            resultList.add(new String(result));
            return;
        }

        for(int i = 0; i < str.length; i++) {
            if(count[i] == 0) {
                continue;
            }
            result[level] = str[i];
            count[i]--;
            permuteUtil(str, count, result, level + 1, resultList);
            count[i]++;
        }
    }
Date 01/29/2016
@author Tushar Roy

Generate all permutations of string in lexicographically sorted order where repetitions of
character is possible in string.
src/com/interview/recursion/StringPermutation.java