Есть список "валютных пар"
tickersList- BTC_USD
- BTC_EUR
- BTC_RUB
- BTC_UAH
- BTC_PLN
- BCH_BTC
- BCH_USD
- BCH_RUB
- BCH_ETH
- DASH_BTC
- DASH_USD
- DASH_RUB
- ETH_BTC
- ETH_LTC
- ETH_USD
- ETH_EUR
- ETH_RUB
- ETH_UAH
- ETH_PLN
- ETC_BTC
- ETC_USD
- ETC_RUB
- LTC_BTC
- LTC_USD
- LTC_EUR
- LTC_RUB
- ZEC_BTC
- ZEC_USD
- ZEC_EUR
- ZEC_RUB
- XRP_BTC
- XRP_USD
- XRP_RUB
- XMR_BTC
- XMR_USD
- XMR_EUR
- BTC_USDT
- ETH_USDT
- USDT_USD
- USDT_RUB
- USD_RUB
- DOGE_BTC
- WAVES_BTC
- WAVES_RUB
- KICK_BTC
- KICK_ETH
ВыходнаяВалюта_ВходнаяВалюта
На примере пары BTC_USD:
Покупка/продажа BTC за USD
Задача:
Найти все возможные цепочки пар заканчивающиеся и начинающиеся на одной "валюте" и имеющие все возможные сочетания из списка выше. Все цепочки сочетаний разного уровня комбинаций.
Для примера разберем пару BTC_USD:
Входная валюта USD.
Мы можем получить такую цепочку:
BTC_USD=>BCH_BTC=>BCH_USD
Первые мысли.
1. вложенные циклы с проверкой
2. рекурсия
3. комбинаторика через перестановки и сочетания
Буду признателен за код на C#, или другой "сишный" пример решения.