Конечно можно.
Создай перед запуском функции с рекурсией отдельный объект, который ты будешь использовать для накопления данных о работе своей функции. Пусть это StringBuilder будет, например.
И вместо вывода на экран просто складывай данные в него. И потом его же передавай в свинг