Вы в теле цикла присваиваете переменной целочисленное значение i в строчке 24
После этого действия переменная tmp является не списком, а числом
Чтобы это добавить элемент в список есть метод append
Вот конструкция, на которую надо заменить эту строчку: tmp.append(i)
Используя LongPoll у объекта Message есть поля peer_id и from_id, где peer_id - номер беседы, а from_id - id пользователя. В личных сообщениях from_id = peer_id, в диалогах - peer_id>20000000
Рекурсивный обход графа не есть хорошее решение, так как может выйти ошибка с количеством рекурсий. Попробуйте обходить граф с помощью очереди. Уверен, при таком способе вылетов не будет, и обойти можно будет не за O(n!), a за O(n)