private void expandStrings(HashMap<String, Float> posGenStrings, int offset) {
		/*
		 * System.out.println("--------------------------------"); for(String
		 * s:posGenStrings.keySet()){ System.out.println(s +":"+
		 * posGenStrings.get(s)); }
		 * System.out.println("--------------------------------");
		 */
		int rows = this.weights.length;
		int columns = this.weights[0].length;
		HashMap<String, Float> extendedStrings = new HashMap<String, Float>();
		for (String s : posGenStrings.keySet()) {
			Float score = posGenStrings.get(s);
			boolean extended = false;
			for (int i = 0; i < rows; i++) {
				if (score * weights[i][offset] >= k) {
					extendedStrings.put(s + this.alphabet[i], score
							* weights[i][offset]);
					extended = true;
				}
			}

			if (score >= k && extended == false) {
				this.generatedStrings.put(s, score);
				//System.out.println("PUTTING:" + s + ", score:" + score);

			}

		}

		if (extendedStrings.size() > 0 && offset + 1 < columns) {
			expandStrings(extendedStrings, offset + 1);
		} else {
			if (extendedStrings.size() > 0) {
				for (String s : extendedStrings.keySet()) {
					Float score = extendedStrings.get(s);
					generatedStrings.put(s, score);
					//System.out.println("PUTTING:" + s + ", score:" + score);
				}
			}

		}

	}