private ArrayList<ArrayList<E>> getPossibleCombos(List<Node> nodes) {
		ArrayList<ArrayList<E>> toReturn = new ArrayList<ArrayList<E>>();
		for (Node n : nodes.get(nodes.size() - 1)) {
			ArrayList<Node> newFoundTiles = new ArrayList<Node>();
			for (int i = 0; i < nodes.size(); i++)
				newFoundTiles.add(nodes.get(i));
			newFoundTiles.add(n);
			if (n.isEmpty()) {
				ArrayList<E> toAdd = new ArrayList<E>();
				for (Node nf : newFoundTiles) {
					toAdd.add(nf.getElement());
				}
				toReturn.add(toAdd);
			}
			for (ArrayList<E> s : getPossibleCombos(newFoundTiles)) {
				toReturn.add(s);
			}
		}
		return toReturn;
	}