Через циклы и обязательно рекурсию. У меня есть такая програмка, но она работает с символами. Как вариант передавать функции строку с разделителями (на строки). Потом она получив её запускает себя на реализацию дальше. Причём туда же надо вставить проверку на идентичность строк, и если есть одинаковые строки запускать функцию дальше только один раз(для каждой комбинации). У меня сейчас нет VB и не предвидиться. Но как пример скину тот проектик. Надеюсь он поможет, хотя он и без комментариев.
---
Добавлю общий принцип проги на всякий случай.
Есть функция берущая два параметра готовую строку (строка 1) и строку с разделителями (строка 2 "исходные данные")
Она смотрит какие возможны варианты различных строк из того что во второй строке. И запускает себя столько раз сколько вариантов со всеми возможными вариантами прибавленными к первой строке и второй строкой без варианта написанного в первой.
Короче если в первой строке "111", а во второй строке "абв.где.жзи" то она запустит себя с параметрами:
1="111абв" 2= "где.жзи"
1="111где" 2= "абв.жзи"
1="111жзи" 2= "абв.где"
Если во второй строке на момент запуска функции пусто то складываем то что в первой строке в файл с результатами.
Всё. Запускаем программу с первой строкой "" и второй строкой составленной из исходных строк с разделителями.
PS Обьяснять не умею, но пытаюсь...
PPS А почему в трёпе?