private boolean shuffleUtil(char input[], int freq[], char result[], int pos, char lastVal) {
		if(pos == result.length){
			return true;
		}
		
		for(int i=0; i < input.length; i++){
			if(lastVal == input[i]) {
				continue;
			}
			if(freq[i] == 0) { 
				continue;
			}
			freq[i]--;
			result[pos] = input[i];
			if(shuffleUtil(input, freq, result, pos+1, input[i])){
				return true;
			}
			freq[i]++;
		}
		return false;
	}
Date 07/05/2015
@author Tushar Roy

Given an input with duplicate characters generate a shuffle which does not have 
two duplicate characters together

Do regular permutation with repetition with additional constraint of keeping
duplicates away from each other.
src/com/interview/recursion/FancyShuffle.java