public ArrayList<Chemin> getChemins(Station depart, Station arrivee, Chemin chemin, ArrayList<Station> stationsVisitees) {
		if(depart == null || arrivee == null || chemin == null) return null;
		if(!depart.isOuvert()) return null;
		chemin.ajouterStation(depart);
		
		// Condition de fin on a trouve la station d'arrivee
		if(depart.equals(arrivee)) {
			ArrayList<Chemin> res = new ArrayList<Chemin>();
			res.add(chemin);
			return res;
		} else {	// Sinon on relance la recherche a partir de chaque station liee a celle de depart
			stationsVisitees.add(depart);
			ArrayList<Chemin> res = new ArrayList<Chemin>();
			for(Voie v : depart.getVoies()) {
				if(!stationsVisitees.contains(v.getDestination()) && v.isEnCirculation()) {
					ArrayList<Chemin> chemins = getChemins(v.getDestination(), arrivee, chemin.clone(), new ArrayList<Station>(stationsVisitees));
					if(chemins != null) res.addAll(chemins);
				}
			}
			return res;
		}
	}