private void generate(int[][] num, int row, int col, int value, int len) {
		if (len <= 0) 
			return;
		if (len == 1)
			num[row][col] = value;
		else
		{
			for(int i = 1; i < len; i++)
				num[row][col++] = value++;
			for(int i = 1; i < len; i++)
				num[row++][col] = value++;
			for(int i = 1; i < len; i++)
				num[row][col--] = value++;
			for(int i = 1; i < len; i++)
				num[row--][col] = value++;
			
			generate(num, row+1, col+1, value, len-2);
		}
    }