\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\abbreviation}{ m } {
\paulo_generate_abbreviation:n { #1 }
}
\seq_new:N \l_paulo_abbrev_seq
\cs_new_protected:Npn \paulo_generate_abbreviation:n #1 {
\seq_set_split:Nnn \l_paulo_abbrev_seq { ~ } { #1 }
\seq_pop_left:NN \l_paulo_abbrev_seq \l_paulo_firstname
\seq_pop_right:NN \l_paulo_abbrev_seq \l_paulo_lastname
{ \l_paulo_firstname } ~
\seq_map_inline:Nn \l_paulo_abbrev_seq {
\seq_set_split:Nnn \l_tmpa_seq { } { ##1 }