def create_path(network, user_A, user_B, path=[]):
    """
    Finds a connections path from user_A to user_B using recursion.
    It has to be an existing path but it DOES NOT have to be the
    shortest path. Circular loops returns None (for example,
    A is connected to B. B is connected to C. C is connected to B.).
    Arguments:
    network: The network created with create_data_structure.
    user_A:  String holding the starting username.
    user_B:  String holding the ending username.
    path: The current path(for recursion).
    Returns:
    A list showing the path from user_A to user_B.
    - If such a path does not exist, returns None.
    Sample output:
    print find_path_to_friend(network, "Abe", "Zed")
    ['Abe', 'Gel', 'Sam', 'Zed']
    This implies that Abe is connected with Gel,
    who is connected with Sam, who is connected with Zed.
    """
    path = path + [user_A]  # all paths include starting node
    if user_A == user_B:  # id the last node is user_B a valid path exists
        return path  # base case
    for node in network[user_A][0]:
        if node not in path:  # otherwise path is an infinite loop
            path = create_path(network, node, user_B, path)
            if path:  # after the recursion hits the base case
                return path
    return None