Recursion is a procedural language concept. This is the wrong forum for this type of question. You have also not stated a question which requires recursion.
proc group_recurse { list } {
if {[llength $list] > 1} {
return "GRP[lindex $list 0]\n[group_recurse [lrange $list 1 end]]"
} else {
return "GRP[lindex $list 0]\n"
}
}puts [group_recurse {1 2 4 5}]