package com.interview.recursion; /** * Generate all combination of size k and less of adjacent numbers * e.g 1,2,3,4 k = 2 * 1 2 3 4 * 12 3 4 * 1 23 4 * 1 2 3 34 * 12 34 * @author tusroy * */ public class AllAdjacentCombination { public void combination(int input[],int result[],int k,int pos,int r){ if(pos == input.length){ for(int i=0; i < r ; i++){ System.out.print(result[i] + " "); } System.out.println(); return; } for(int i=pos; i < pos + k && i < input.length; i++ ){ result[r] = formNumber(input,pos,i); combination(input,result,k,i+1,r+1); } } private int formNumber(int input[], int start, int end){ int num = 0; for(int i=start; i <=end; i++){ num = num*10 + input[i]; } return num; } public static void main(String args[]){ AllAdjacentCombination adc = new AllAdjacentCombination(); int input[] = {1,2,3,4,5}; int result[] = new int[input.length]; adc.combination(input,result,3,0,0); } }