public static void generation() {
		addToTable(constructers);
		int start =  0;
		while (true) {
			if (Config.verbose >= 1) {
				System.out.print("Generation : " + start + " ->");
			}
			ArrayList<Node> newList = new ArrayList<Node>();
			ArrayList<Node> list = mainList.get(start);
			int taille = list.size();
			int i = 0;
			Collections.sort(list, new NodeCompartor());

			while (i < taille) {
				Node tmp = list.get(i);
				for (int j = 0; j < tmp.getFils().size(); j++) {
					for (int z = 0; z < constructers.size(); z++) {
						ArrayList <Node> t = tmp.AddLevel(constructers.get(z));
						addList(t, newList);
					}
				}
				i++;
			}
			mainList.add(newList);
			System.out.println(PrintUtils.ArbresToDot(newList, "1"));
			System.out.println(" Nb of Trees Generated : " + newList.size());
			if(newList.size() == 0){
				System.out.println("========================================");
				break;
			}
			start++;
		}
	}