Как сделать многоуровневое меню телеграм бота ( inline — callback) на python?
Надо добавить в bot.send_message необязательный параметр reply_markup=key  (т.е. помимо отправления текста бот создаст меню), предварительно указав необходимую информацию.
Вот пример на скорую руку (изменение 3 кнопки):@bot.message_handler(commands=["start"])
def inline(message):
	key = types.InlineKeyboardMarkup()
	but_1 = types.InlineKeyboardButton(text="NumberOne", callback_data="NumberOne")
	but_2 = types.InlineKeyboardButton(text="NumberTwo", callback_data="NumberTwo")
	but_3 = types.InlineKeyboardButton(text="NumberTree", callback_data="NumberTree")
	key.add(but_1, but_2, but_3)
	bot.send_message(message.chat.id, "ВЫБЕРИТЕ КНОПКУ", reply_markup=key)

@bot.callback_query_handler(func=lambda c:True)
def inline(c):
	if c.data == 'NumberOne':
		bot.send_message(c.message.chat.id, 'Это кнопка 1')
	if c.data == 'NumberTwo':
		bot.send_message(c.message.chat.id, 'Это кнопка 2')
	if c.data == 'NumberTree':
		key = types.InlineKeyboardMarkup()
		but_1 = types.InlineKeyboardButton(text="NumberOne", callback_data="NumberOne")
		but_2 = types.InlineKeyboardButton(text="NumberTwo", callback_data="NumberTwo")
		but_3 = types.InlineKeyboardButton(text="NumberTree", callback_data="NumberTree")
		key.add(but_1, but_2, but_3)
		bot.send_message(c.message.chat.id, 'Это кнопка 3', reply_markup=key)
Это делается простым изменением сообщения. После этого вставляем другую клавиатуру, подробно можете узнать здесь: https://groosha.gitbooks.io/telegram-bot-lessons/c...
Если всё же вы не могли понять, то напишите - объясню.