public static List<GraphNode> generateGraph(List<String> values) {
    	GraphNode head = null;
    	List<GraphNode> nodes = new ArrayList<GraphNode>();
    	for (int i = 0; i < values.size(); i++) {
			GraphNode node = new GraphNode(values.get(i));
			if (null == head) head = node;
			nodes.add(node);
		}
    	for (GraphNode node : nodes) {
    		for (GraphNode neighbor : nodes) {
    			if (node != neighbor && !node.neighbors.contains(neighbor) && isDiffChar(node.lab, neighbor.lab)) {
    				node.neighbors.add(neighbor);
    				neighbor.neighbors.add(node);
    			}
    		}
    	}
    	return nodes;
    }