Without some sort of mailing list software, I'm not sure you'll really get the functionality you want.
As a workaround I would try setting up a custom tag, using an existing unused field, or something in Notes, and then creating a Smart Ground around that.
For example, all the contacts you want in your group, put 'mailing list' into their notes. Then create a SmartGroup to show those contacts.
Send the contacts to your friend, and they can import and merge the data. If they setup the same smart group, you should have the same contacts, with the same info, in that group.
The other option would be to stop her importing anything, and just use a Shared Addressbook, and maintain everything there. Google, Exchange, LDAP etc will let you use a remote address book, that isn't automatically synced to your local address book, but all contacts are accessibly, so you can both use that. In the groups page of the address book you'll see your local contacts, and remote contacts as distinct lists. Then, you'll just know to send to everyone in that shared address book.
Here is a script written quickly. Should work. But I have not revised it down to be efficient.
tell application "Contacts"
(*get the names of all groups *)
set theGroupNames to name of groups
(*choose you current group, the one to keep entries*)
set text_returnedCurrent to choose from list theGroupNames with prompt "Choose Current Group" default items "Work - Current" without multiple selections allowed
(*choose you pending group, the one to remove entries*)
set text_returnedPending to choose from list theGroupNames with prompt "Choose Pending Group" default items "Work - Pending" without multiple selections allowed
(*Get the people/entries of the Current group*)
set the_peopleCurrent to people of group (text_returnedCurrent as text)
(*Get the people/entries of the Pending group*)
set the_peoplePending to people of group (text_returnedPending as text)
(*iterate through the people of the Current group*)
repeat with i from 1 to number of items in the_peopleCurrent
(*get a person from the Current group*)
set thisPersonCurrent to item i of the_peopleCurrent
(*iterate through ALL the people of the Pending group**)
repeat with x from 1 to number of items in the_peoplePending
(*get a person from the Pending group*)
set thisPersonPending to item x of the_peoplePending
(*Check if the person from the Current group is the same person as thisPersonPending*)
if thisPersonCurrent is equal to thisPersonPending then
(* if they are remove them. *)
remove thisPersonPending from group (text_returnedPending as text)
(*save the contacts changes*)
save
end if
end repeat
end repeat
end tell
Best Answer
This probably isn't the best Applescript code ever written but it did work for me to list the people in a specific group (on 10.8 mountain lion).