How can I update a menu via an operator?
Hopefully this is concise and shows how to work with the callback and the custom PropertyGroup. A subtle detail is that each property in the group must have a name (never undefined or None). See PropertyGroup docs

Where the information that populates the menu is taken from, be it a list, or some function call is none of bpy's business.

import random
import bpy 

from bpy.props import (EnumProperty, PointerProperty)
from bpy.types import (Operator, Panel, PropertyGroup)

own_name_space = {}
own_name_space['list 0'] = ['m']
own_name_space['list 1'] = ['a', 'b', 'c']
own_name_space['list 2'] = ['d', 'e', 'f']
own_name_space['list 3'] = ['g', 'h', 'i']


def get_menu_items(self, context):
    items = [(t, t, "") for t in own_name_space[self.menu_key]]
    return items


class CustomMenuProps(PropertyGroup):

    menu_key = bpy.props.StringProperty(
        name='custom menu key',
        default='list 0',
        options={'HIDDEN'})

    some_selection = EnumProperty(
        name='custom menu result',
        items=get_menu_items,
        description='choose menu item')


class CallbackChangeList(Operator):

    bl_idname = "scene.callback_change_enum"
    bl_label = "Load new list items"

    def execute(self, context):
        key = random.choice(list(own_name_space.keys()))
        context.scene.menu_tool.menu_key = key
        return {'FINISHED'}


class LayoutDemoPanel(Panel):
    bl_label = "Layout Demo"
    bl_idname = "SCENE_PT_layout"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    def draw(self, context):
        layout = self.layout
        col = layout.column()
        col.label(text=" Simple Row:")
        col.prop(context.scene.menu_tool, 'some_selection', text='')
        col.operator('scene.callback_change_enum')


def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.menu_tool = PointerProperty(type=CustomMenuProps)


def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.menu_tool


if __name__ == "__main__":
    register()