public static List<String> generateAddress(String[] nums, int position, List<String> addressList, String tmp) {
		String[] parts = tmp.split("\\.");
		if(parts.length == 5) {
			return addressList;
		}
		if(position == nums.length) {
			if(parts.length == 4) {
				addressList.add(tmp);
				return addressList;
			}else {
				return addressList;
			}
		}
		
		String last;
		if(parts.length == 0) {
			last = tmp;
		}else {
			last = parts[parts.length-1];
		}
		if(Integer.valueOf(last+nums[position]) < 256) {
			addressList = generateAddress(nums, position+1, addressList, tmp+nums[position]);
		}
		if(tmp != "") {
			addressList = generateAddress(nums, position+1, addressList, tmp+"."+nums[position]);
		}
		return addressList;
		
		
		
		
	}