range-by implementation, based string-to-list on top of it