public static long getPermutationNumber( final List<LocationList> variations, final LocationList locations ) {
		if ( null == variations || variations.size() < 1 ) return -1;
		if ( null == locations || locations.size() < 1 || locations.size() != variations.size() ) return -1;
		long permutation = 0;
		for ( int i = 0; i < locations.size(); i++ ) {
			Location location = locations.get( i );
			// System.out.println( "Location " + i + "=" + location );
			LocationList enharmonics = variations.get( locations.size() - 1 - i );
			// System.out.print( "   Enharmonics " + i + "=" + enharmonics );
			
			int indexOf = enharmonics.indexOf( location );
			if ( -1 != indexOf ) {
				permutation *= (long) enharmonics.size();
				permutation += (long) indexOf;
				// System.out.println( " indexOf " + location + "=" + indexOf + ", permutation=" + permutation );				
			} else {
				System.out.println( "Did not find location " + location + " in list " + enharmonics );
				return -1;
			}
		}
		return permutation;
	}