I think the best bet for a person without arms (assuming we aren't talking rough water/offshore use) is a type 2 life jacket. Specifically the type that look like an oversized bib.
These jackets don't rely on arms to secure them to your body, and will generally allow conscious people to remain face up without much effort which is nice if the wearer is scared of water or can't swim. You can also purchase a "universal crotch strap" that should prevent it from riding up. I think this combination would be the cheapest and easiest option.
Of course there are disadvantages to this type of life jacket. Namely they make you look like a dork, and aren't exceedingly comfortable. One other concern I'd have is if the jacket could rotate while your friend is in the water. Admittedly I have no idea if it would happen but it would be a scary experience if it did happen. The crotch strap should limit the twisting/rotation to some degree so this might not be a problem in practice.
If it were my friend I'd try out the jacket with crotch strap combo on land first. If you both came to the conclusion that rotation/twisting is a non-issue this is the route I'd go.
If twisting/rotation is a valid concern with the bib type 2 life jacket then you could experiment with an "upside-down" life jacket.
These are worn basically like a diaper over your swimming suit. There are even some models that are Coast Guard approved. Your friend's lack of arms should pose no problem. I've never used or seen one of these being used but I'd wonder how stable it was in the water. I'd assume since it is Coast Guard approved it is reasonably stable. Also I can't imagine that would be comfortable to sit in for a full day in the water...
Another option is full blown disabled life jackets. These are likely to be the safest option out there. Two of the models shown in the link above don't seem all that practical since they look like a life ring with seat cushions sewn on. The other model looks like an over built version of the standard type 2 life jacket, which confirms that the first option I gave above is likely a good choice.