private ArrayList<CodeObject> generatePossibleGuesses(ArrayList<CodeObject> curCodes, int codeLength) {
		if (codeLength == 0) {
			return curCodes;
		}
		ArrayList<CodeObject> nextCodes = new ArrayList<CodeObject>();
		for (int i = 0; i < curCodes.size(); i++) {
			for (int j = 0; j < this.colourLength; j++) {
				CodeObject curCode = curCodes.get(i).clone();
				
				curCode.addColour(ColourCode.values()[j+1]);
				nextCodes.add(curCode);
			}
		}
		curCodes = null;
		return generatePossibleGuesses(nextCodes, codeLength-1);
	}