опять задачки на кодеварс, лучшее решение

s='4556364607935616'
p s.gsub(/.(?=....)/, '#')

ищем по регулярке любой символ, потом по шаблону вперед любые 4 символа, и заменяем все на решетку, но есть ньюанс, любые четыре символа в замене не участвуют, так проходим по всей строке, на 4 символе с конца данное условие перестанет действовать и строка останется прежней.