def METHOD_NAME(domain, location_types, stock_tracking_types, locations):
    """
    Create a hierarchy of locations.
    :param location_types: A flat list of location type names
    :param stock_tracking_types: A list of names of stock tracking location_types
    :param locations: A (recursive) list defining the locations to be
        created.  Each entry is a (name, [child1, child2..]) tuple.
    :return: (location_types, locations) where each is a dictionary mapping
        string to object created
    """
    location_types_dict = setup_location_types(domain, location_types)
    for loc_type in stock_tracking_types:
        location_types_dict[loc_type].administrative = False
        location_types_dict[loc_type].save()
    locations_dict = setup_locations(domain, locations, location_types)
    return (location_types_dict, locations_dict)